gpt4 book ai didi

javascript - 使用递增变量时 jquery 循环不起作用

转载 作者:行者123 更新时间:2023-11-30 17:33:43 29 4
gpt4 key购买 nike

我试图多次循环一个函数,但由于某种原因它不起作用。有人看到问题了吗?

这行得通

 <script>
$(document).ready(function() {
$('.menuitem0').hover(function(){
$('.boxitem0').addClass('box_hover');

},
function(){
$('.box_item0').removeClass('box_hover');
});
}});
</script>

但是当我尝试循环它时它不起作用

 <script>
$(document).ready(function() {
for(var i = 0; i < 10; i++) {
$('.menuitem'+i).hover(function(){
$('.box_item'+i).addClass('box_hover');

},
function(){
$('.box_item'+i).removeClass('box_hover');
});
}});
</script>

最佳答案

悬停回调执行时,循环结束,i 始终为 10

你需要一个闭包

$(document).ready(function() {     
for(var i = 0; i < 10; i++) {
(function(k) {
$('.menuitem'+k).hover(function(){
$('.box_item'+k).addClass('box_hover');

},
function(){
$('.box_item'+k).removeClass('box_hover');
});
}
}});

更好的方法是定位正确的元素,并且根本不使用循环,例如属性以选择器开头,并假设框在菜单内

$(document).ready(function() {     
$('[class^="menuitem"]').hover(function(){
$('.box_item', this).addClass('box_hover');
},
function(){
$('.box_item', this).removeClass('box_hover');
});
});

关于javascript - 使用递增变量时 jquery 循环不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22457164/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com