我有一個菜單顯示了懸停時的子菜單。我的問題是,當頁面加載時,如果鼠標懸停在任何菜單元素上,懸停事件將觸發。我想要發生的是,在初始頁面加載時,如果鼠標懸停在某個菜單元素上,懸停事件不會觸發;如果鼠標不在菜單元素上,則一旦用戶鼠標在菜單元素上方,正常的懸停事件就會觸發。jquery:如果鼠標懸停在元素上,則在初始頁面加載時移除懸停
預先感謝任何及所有的幫助, 乙
我有一個菜單顯示了懸停時的子菜單。我的問題是,當頁面加載時,如果鼠標懸停在任何菜單元素上,懸停事件將觸發。我想要發生的是,在初始頁面加載時,如果鼠標懸停在某個菜單元素上,懸停事件不會觸發;如果鼠標不在菜單元素上,則一旦用戶鼠標在菜單元素上方,正常的懸停事件就會觸發。jquery:如果鼠標懸停在元素上,則在初始頁面加載時移除懸停
預先感謝任何及所有的幫助, 乙
防止從發射懸停元素的默認行爲。
$("menuElementSelector").hover(function(e){
e.PreventDefault();
});
@Mörre想法是好的,這裏有一個靈感的一個,使用jQuery:
$(document).ready(function() {
// sets a loaded class on your menu when DOM is loaded (you could also try the $(window).load event)
$('#menu').addClass('loaded');
// add the hover event on the links of your menu only if the menu has the loaded class
$('#menu.loaded a').live('mouseover mouseout', function(event) {
if (event.type == 'mouseover') {
// do something on mouseover
} else {
// do something on mouseout
}
});
});
使用hoverIntent jquery plugin。您可以延遲活動的迴應。所以,當鼠標結束時,事件不會立即觸發。
希望的結果不是延遲懸停事件,而是在頁面加載時如果鼠標初始位於菜單元素上時將其完全解除綁定。 – bflemi3 2011-03-02 16:29:52
但我認爲這是一種不真實的方法,1.實現想要的和2.避免鼠標懸停錯誤 – 2011-03-05 00:52:14
但我怎麼會這樣做只有當頁面加載,只有當鼠標是在該元素? – bflemi3 2011-03-02 16:22:09