扫码关注官方订阅号
按钮1 按钮2 按钮3 按钮4 按钮5
求教该如何改进代码~才能达到点击按钮1输出1,点击按钮2输出2....这种效果万分感谢
欢迎选择我的课程,让我们一起见证您的进步~~
开始用 let 声明变量吧
for (var i = 1; i <=5; i++) {
(function(i){ $("#btn"+i+"").click(function () { console.log(i); }) })(i) }
嗨呀 又是闭包问题
for (var i = 1; i <=5; i++) { (function(i){ $('#btn' + i).click(function () { console.log(i); }); })(i); }
又是闭包问题...
for (var i = 1; i <=5; i++) { (function(arg){ $("#btn"+arg+"").click(function () { console.log(arg);//点击任何按钮都是输出6~我想要的效果是点击按钮1输出1,点击按钮2输出2.........求解~~ }); })(i); }
附上资料,理解原理比知道怎么写重要:https://segmentfault.com/a/11...
<button data-ref="1">button1</button> <button data-ref="2">button2</button> <button data-ref="3">button3</button> <button data-ref="4">button4</button> <button data-ref="5">button5</button> <button data-ref="6">button6</button> <button data-ref="7">button7</button> <button data-ref="8">button8</button> <script type="text/javascript" src="http://cdn.bootcss.com/jquery/3.1.0/jquery.js"></script> <script type="text/javascript"> $("button").click(function(){ console.log($(this).attr("data-ref")); }) </script>
贴上代码你看看
$('button').click(function(){
alert($(this).index()+1); })
因为console.log你点击才会触发, 而你点击前for已经执行完了, 所以i一定是取到的最终值.最简单的方法是利用闭包, 把i作为参数传进去.
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
开始用 let 声明变量吧
for (var i = 1; i <=5; i++) {
嗨呀 又是闭包问题
又是闭包问题...
附上资料,理解原理比知道怎么写重要:
https://segmentfault.com/a/11...
贴上代码你看看
$('button').click(function(){
因为console.log你点击才会触发, 而你点击前for已经执行完了, 所以i一定是取到的最终值.
最简单的方法是利用闭包, 把i作为参数传进去.