我的頁面上有一個菜單。在每個菜單項的點擊它調用的以下功能之一:JQuery函數在屬性更改後仍然運行
$('.sideNav1').click(function(){
$('.sideNav1').attr('class','selected1');
$('.selected2').attr('class','sideNav2');
$('.selected3').attr('class','sideNav3');
alert("1 selected");
return false;
});
$('.sideNav2').click(function(){
$('.sideNav2').attr('class','selected2');
$('.selected1').attr('class','sideNav1');
$('.selected3').attr('class','sideNav3');
alert("2 selected");
return false;
});
$('.sideNav3').click(function(){
$('.sideNav3').attr('class','selected3');
$('.selected2').attr('class','sideNav2');
$('.selected1').attr('class','sideNav1');
alert("3 selected");
return false;
});
HTML:
<div class="sideNav1">
Nav 1
</div>
<div class="sideNav2">
Nav 2
</div>
<div class="sideNav3">
Nav 3
</div>
繼屬性的變化(其中,根據在Chrome瀏覽器開發工具,確實發生了)我想期望選定的div在點擊時不做任何事情。相反,它表現得好像沒有屬性更改,並且click()
事件偵聽器仍然要求.sideNav...
再次運行該函數。
有什麼我可能會在這裏失蹤?
感謝您早日respnse!要使用您的方法,我是否必須將HTML更改爲'
@ matt1985 - 您可以使用任何常見的父母。它不一定是直接的父母。你並不知道你的HTML如何,但如果你有任何常見的容器div,你可以使用它 - 你不一定要添加一個新的容器對象。你甚至可以使用'body'對象作爲公共父對象,儘管越接近父對象,你就可以選擇更好的性能(只有當你有很多委託事件處理程序連接到同一個對象時,性能纔會有所不同相同的頁面)。 – jfriend00
非常感謝您提供解決方案,但深入的解釋。我看到147k代表來自哪裏:) – Wildcard27