<div class="box">111111</div> <div class="box">111111</div> <div class="box">111111</div> <div class="btn">点击事件</div> <script> var ones = ["实验1","实验2","实验3"] for(let i=0;i<ones.length;i++){ $(".box")[i].onclick = function(){ $(".btn").click(function(){ console.log(ones[i]); }) } } </script>这里描述一下问题,正常来说我点击页面上的111,在点击页面上的(点击事件这个按钮),就会取到数组里对应的值(这里是没问题的).但是如果我点击其中一个111,在点击另外一个111,最后再点击触发console的那个点击事件。就会把之前点击那个值一起获取,打印出2个值。这里为什么会把上一次的值存进去了,难道2次点击事件创建了2个btn函数,同时里面的值存进去2个地址?不明白!
1 回答
业余奶茶品鉴师
TA贡献260条经验 获得超388个赞
$(".box")[i].onclick = function(){ $(".btn").click(function(){ console.log(ones[i]); }) }
这个地方写的有问题,
$(".box")[i].onclick = function(){} 就已经给每个div绑定了点击事件,没必要再写里面的
改成
$(".box")[i].onclick = function(){ console.log(ones[i]); }
添加回答
举报
0/150
提交
取消