在循环中,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)
})
}
我希望for循环可以与array.splice一起使用
答案 0 :(得分:0)
您需要将i
的值绑定到click内部的函数-因为它是异步调用的。尝试在let
语句中使用var
代替for
:
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)
})
}