2012-05-29 43 views
0

我想寫一個腳本,檢測div是否可見或不會確定是否懸停事件觸發與否。如果語句懸停事件與2點擊處理程序

如果id「contact」隱藏,則將鼠標懸停在菜單項上會更改塊的顏色。 然後,如果你點擊另一個菜單項來顯示ID「聯繫」,那麼懸停不應該工作。點擊另一個菜單項隱藏ID「聯繫人」將允許懸停再次工作。

這是據我已經得到了與的jsfiddle:http://jsfiddle.net/YktAZ/123/

我什至不知道我需要的「其他人」,但是我「騙」懸停到「不工作」的唯一途徑或不顯示變化。我真的只需要如果允許它工作,然後不觸發懸停如果條件不滿足。

+0

記住ID屬性必須是唯一的。你不應該有多個'塊'ID。 – BNL

回答

1

如果你把你的if語句放在你的懸停函數中,這將起作用。 基本上,每次執行swap_hover()時,都會爲元素添加新的懸停事件處理程序,但實際上並未開啓或關閉懸停。

最好的辦法是做這樣的事情:

$("#item").hover(function(){ 
    //hover on 
    if($("#otherItem").is(":visible"){ 
     //do this code 
    } 
}, function(){ 
    //hover off 
    //do this code. 
}); 
+0

啊,這太簡單了,太棒了。有沒有辦法在這個懸停內添加一秒?我問的原因是因爲實際上有2個id,我會隱藏/顯示,而不僅僅是一個。 – rod

+0

當然,你可以添加儘可能多的'if',只要你喜歡,就和其他代碼塊一樣。 – ahren

相關問題