2014-09-22 50 views
0

IM轉述我的問題:下面的代碼工作正常,每次僅一些jQuery的循環性能

$('.topCellNav_1').mouseover(function(){      
     $('.cell_1').not(this).fadeTo(50,0.4);     
}); 

$('.topCellNav_2').mouseover(function(){      
     $('.cell_2').not(this).fadeTo(50,0.4);     
}); 

$('.topCellNav_3').mouseover(function(){      
     $('.cell_3').not(this).fadeTo(50,0.4);     
}); 

$('.topCellNav_4').mouseover(function(){      
     $('.cell_4').not(this).fadeTo(50,0.4);     
}); 

$('.topCellNav_5').mouseover(function(){      
     $('.cell_5').not(this).fadeTo(50,0.4);     
}); 

等多達19個或更多塊不同......

所以問題是---如何縮短上述使用循環

類似的東西代碼:

var i=-1 
while (++i < 19) { 

$('.topCellNav_'+i).mouseover(function(){     
     $('.cell_'+i).not(this).fadeTo(50,0.4); 

}); 
} 

塔NKS

+0

另一種解決方案是像'topCellNav'添加一個普通類所有這些因素,然後'$( 'topCellNav')。鼠標懸停(函數(){ $('。cell_'+ this.className.match(/ topCellNav _(\ d +)/)[1])。not(this).fadeTo(50,0.4); #});' – 2014-09-22 08:49:39

+0

我編輯了問題 – VNicholson 2014-09-22 10:49:00

+0

您是否嘗試過我建議的代碼 – 2014-09-22 11:09:23

回答

0

您可以使用屬性與選擇開始

$('[class^="topCellNav_"').mouseover(function() { 
    var index = $(this).attr("class").split("_")[1]; 
    $('.cell_' + index).not(this).fadeTo(50, 0.4); 
}); 
+0

感謝您的回覆......我檢查了建議的答案,但是我不打印這些值!我需要循環的屬性... – VNicholson 2014-09-22 09:59:07