回答
$(this).unbind('mouseenter').unbind('mouseleave')
或更簡潔(感謝@Chad格蘭特) :
$(this).unbind('mouseenter mouseleave')
或$(this).unbind('mouseenter mouseleave') – 2009-04-30 08:39:29
這是mouseenter的必要序列,然後是mouseleave之後? – sanghavi7 2012-10-05 10:02:56
所有懸停在做幕後綁定到鼠標懸停及移出財產。我會分別綁定和解除這些事件的功能。
例如,假設你有以下的html:
<a href="#" class="myLink">Link</a>
那麼你的jQuery的是:
$(document).ready(function() {
function mouseOver()
{
$(this).css('color', 'red');
}
function mouseOut()
{
$(this).css('color', 'blue');
}
// either of these might work
$('.myLink').hover(mouseOver, mouseOut);
$('.myLink').mouseover(mouseOver).mouseout(mouseOut);
// otherwise use this
$('.myLink').bind('mouseover', mouseOver).bind('mouseout', mouseOut);
// then to unbind
$('.myLink').click(function(e) {
e.preventDefault();
$('.myLink').unbind('mouseover', mouseOver).unbind('mouseout', mouseOut);
});
});
更正,查看jquery src hover後,實際上是綁定到mouseenter/mouseleave。你應該這樣做。 – bendewey 2009-04-30 02:50:38
取消綁定mouseenter
和mouseleave
個別事件或解除綁定元素上的所有事件。
$(this).unbind('mouseenter').unbind('mouseleave');
或
$(this).unbind(); // assuming you have no other handlers you want to keep
其實,jQuery documentation具有比上面顯示的鏈接的例子一個更簡單的辦法(雖然他們會工作得很好):
$("#myElement").unbind('mouseenter mouseleave');
在jQuery的1.7,您還可以使用$.on()
和$.off()
進行事件綁定,因此要解除懸停事件,您可以使用更簡單更整齊的方法:
$('#myElement').off('hover');
僞事件名稱「懸停」 is used as a shorthand爲「的mouseenter鼠標離開」,但在早期的jQuery版本中不同的處理;要求您明確刪除每個文字事件名稱。現在使用$.off()
可讓您使用相同的速記刪除兩個鼠標事件。
編輯2016年
仍然是一個熱門問題,所以值得提請注意@Dennis98的點在jQuery的1.9+下面的評論中,‘懸停’事件是有利於標準的deprecated「 mouseenter mouseleave「調用。所以,你的事件綁定聲明現在應該是這樣的:
$('#myElement').off('mouseenter mouseleave');
解除綁定()不硬編碼的在線活動工作。
因此,舉例來說,如果你想從 <div id="some_div" onmouseover="do_something();">
取消綁定鼠標懸停事件,我發現$('#some_div').attr('onmouseover','')
是一個快速和骯髒的方式來實現它。
我發現這工作作爲第二個參數(函數)。hover()
$('#yourId').hover(
function(){
// Your code goes here
},
function(){
$(this).unbind()
}
});
第一個函數(參數爲.hover())是mouseover並執行您的代碼。第二個參數是mouseout,它將從#yourId中解除懸停事件。 您的代碼將只執行一次。
另一種解決方案是.die()用於附加.live()的事件。
例:
// attach click event for <a> tags
$('a').live('click', function(){});
// deattach click event from <a> tags
$('a').die('click');
你可以找到一個很好的REFFERENCE這裏:Exploring jQuery .live() and .die()
(對不起,我的英語:「>)
您可以刪除特定的事件處理程序附上on
,使用off
$("#ID").on ("eventName", additionalCss, handlerFunction);
// to remove the specific handler
$("#ID").off ("eventName", additionalCss, handlerFunction);
利用這一點,你只會移除handlerFunction
另一種很好的做法,是設置一個命名空間的多個連接事件
$("#ID").on ("eventName1.nameSpace", additionalCss, handlerFunction1);
$("#ID").on ("eventName2.nameSpace", additionalCss, handlerFunction2);
// ...
$("#ID").on ("eventNameN.nameSpace", additionalCss, handlerFunctionN);
// and to remove handlerFunction from 1 to N, just use this
$("#ID").off(".nameSpace");
- 1. jQuery Mobile - 從鏈接中解除懸停
- 2. 懸停jQuery解除綁定,懸停關閉重新啓用
- 3. jQuery-從懸停中排除
- 4. 如何懸停在jQuery中?
- 5. 如何在TR中解除綁定jQuery中的TD的鼠標懸停?
- 6. 如何在懸停(jQuery的)
- 7. 在jquery中懸停()的懸停詞嗎?
- 8. 暫停jquery中的懸停
- 9. CSS - 如何解決懸停?
- 10. 如何創建jquery懸停
- 11. jquery ui:draggable - >如果拖動解除綁定懸停事件?
- 12. 將懸停jQuery懸停
- 13. jquery懸停在懸停內
- 14. jQuery的懸停添加類和刪除懸停
- 15. 從jQuery懸停中排除div
- 16. jquery刪除懸停刪除類名
- 17. jQuery的懸停
- 18. jQuery的懸停
- 19. jQuery的懸停
- 20. jQuery的:懸停
- 21. jQuery的 - 懸停
- 22. jQuery的:懸停
- 23. jQuery的:懸停
- 24. 的jQuery懸停():
- 25. jquery lofJSidernews如何暫停懸停?
- 26. asd scroller - 如何暫停懸停JS/jQuery
- 27. 懸停在懸停jQuery的/ javascript的
- 28. 如何使jQuery的懸停像CSS懸停?
- 29. jQuery的解除綁定並重新綁定懸停功能
- 30. jQuery的懸停排除圖像
你們是不是要解除綁定,你分配給懸停事件的功能,或你想修改一個盤旋嗎? – 2009-04-30 02:35:56
爲了澄清Justin Niessner的問題,你是否想要移除Javascript/DOM事件或CSS聲明?後者是一件更復雜的事情。 – eyelidlessness 2009-05-01 05:29:40