Javascript 数组拼接不适用于 JQuery 点击事件



在循环中,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) 
 })
 }

最新更新