关于JS里点击函数,里面在内嵌点击函数,取值问题!求解惑啊,大神!

<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个地址?不明白!

慕村5492868
浏览 1376回答 1
1回答

业余奶茶品鉴师

$(".box")[i].onclick = function(){     $(".btn").click(function(){         console.log(ones[i]);     }) }这个地方写的有问题,$(".box")[i].onclick = function(){} 就已经给每个div绑定了点击事件,没必要再写里面的改成$(".box")[i].onclick = function(){     console.log(ones[i]); }
打开App,查看更多内容
随时随地看视频慕课网APP