在循环中,array.splice不起作用阵列不更改
我更改了一些位置,确认它在Chrome中不起作用。
var menu =['#men','#wmen','#ftwear','#accsries','#chldren','#dscver']
for( var i = 0; i < menu.length; i++){
$(menu[i]).click(function(){
menu.splice(i, 1);
console.log(menu)
menu.forEach(function(list){
$(list+' ul').slideUp(300)
$(list).removeClass('bold')
})
menu.splice(i, 0, menu[i]);
console.log(menu)
})
}
我希望循环使用array.splice
您需要将i
的值绑定到单击中的函数 - 因为它被称为异步。尝试在for
语句中使用let
而不是var
:
var menu =['#men','#wmen','#ftwear','#accsries','#chldren','#dscver']
for( let i = 0; i < menu.length; i++){
$(menu[i]).click(function(){
menu.splice(i, 1);
console.log(menu)
menu.forEach(function(list){
$(list+' ul').slideUp(300)
$(list).removeClass('bold')
})
menu.splice(i, 0, menu[i]);
console.log(menu)
})
}