我有一些按鈕,當點擊時,調用jQuery刪除並替換它們的類。我想要調用的jQuery.mouseover事件忽略操作類,並且只從頁面加載中服從類。jQuery選擇器忽略在頁面加載後操作的類
下面是一個例子如下JSFiddle
詳情:
我有一排按鈕,當滑過調用一些jQuery的一個.highlighted類的其他地方添加到對象在頁面上:
這裏的例子HTML:
<ul id="portfolioLinks">
<li class="activeButton kittens"><a class="kittens" href="#"></a></li>
<li class="activeButton otters"><a class="otters" href="#"></a></li>
<li class="depressed donkey"><a class="donkey" href="#"></a></li>
</ul>
和相應的jQuery代碼:
var selectedType = '.' + $(this).attr('class');
$("li.activeButton a").mouseenter(function() {
var selectedType = '.' + $(this).attr('class');
$("div.pageContent div" + selectedType).addClass('highlighted');
});
$("#portfolioLinks a").mouseleave(function() {
$("div.pageContent div").removeClass('highlighted');
});
也能正常工作從頁面加載靜態內容,但是當我點擊一個按鈕,我得到 jQuery的一個.depressed
類添加到$(this)
並給所有其他.activeButton
:
$("#portfolioLinks a").click(function() {
$("#portfolioLinks li").addClass('activeButton').removeClass('depressed');
$(this).parent().removeClass('activeButton').addClass('depressed');
//do some other stuff
});
但是,它似乎完全忽略了改變的類,並繼續突出顯示匹配缺少.activeButton
類的按鈕的div。
我花了大部分時間在昨晚,今天早上想弄明白這一點。我嘗試過所有的方式.not
s,:not
s和if
s,而我現在完全失去了。
任何指導將不勝感激。
真棒,非常感謝你的幫助!我從來沒有遇到.live()和.delegate()之前。他們看起來像完成任務的方式! – 2010-11-18 14:06:23
@ Magnakai - 歡迎! – 2010-11-18 14:07:00