2011-05-28 32 views
0

你好,我有以下HTML:jQuery的 - 如何 '關閉' 或 '覆蓋' 命名函數

img class="hoverContact" 
img class="hoverContact" 
img class="hoverContact" 

和jQuery代碼:

function highlightContact(ev) { 
    $(ev).addClass('lightblue'); 
} 
function unhighlightContact(ev) { 
    $(ev).removeClass('lightblue'); 
} 

$('.hoverContact').live("mouseover", function(){ 
    highlightContact(this); 
}); 
$('.hoverContact').live("mouseout", function(){ 
    unhighlightContact(this); 
}); 
$('.hoverContact').live("click", function(){ 
    highlightContact(this); 
}); 

我試圖保持lightblue類的點擊,但顯然當我點擊我需要mouseaway,它關閉lightblue類...所以我需要幫助搞清楚如何重寫unhighlight類...

感謝

+0

那麼點擊後的行爲是什麼?什麼時候「正常」突出顯示重新生效? – 2011-05-28 03:25:56

+0

@no good ..之後的行爲是ajax調用...並且圖像將保留該類直到點擊一個新類 – webwrks 2011-05-28 03:31:17

+0

添加'lightblue'類到底是做什麼的?你在代碼中的其他地方使用它,還是僅僅用於CSS? – namuol 2011-05-28 03:51:36

回答

1

有可能是一個更好的辦法,但我會做這樣的 - 你可以用jQuery設置的任意屬性,而不是搞砸了你的頁面驗證或瀏覽器通過將數據粘貼到隨機命名的html屬性中實現兼容性。這樣做的「正確」方式是在HTML標籤中包含另一個XML名稱空間,但我從來沒有看到過這樣做的實際原因。

$('.hoverContact').attr('custom:on', '0') 
.live("mouseover", function(){ 
    highlightContact(this); 
}) 
.live("mouseout", function(){ 
    if ($(this).attr('custom:on') == '0') { 
     unhighlightContact(this); 
    } 
}) 
.live("click", function(){ 
    $('.hoverContact').attr('custom:on', '0'); 
    $(this).attr('custom:on', '1'); 
    highlightContact(this); 
}); 
+0

這個效果很好,但是有點小錯誤,直到你點擊一個圖像才能工作...所以如果你把它們全部放在一起,他們都有這個類......想法?謝謝... – webwrks 2011-05-28 03:39:27