jquery中取消和綁定hover事件的正確方式

在網頁設計中,咱們常常使用jquery去響應鼠標的hover事件,和mouseover和mouseout事件有相同的效果,可是這其中其中如何使用on去綁定hover方法呢?如何用off取消綁定的事件呢?
1、如何綁定hover事件
先看如下代碼,假設咱們給a標籤綁定一個click和hover事件:
$(document).ready(function(){ $('a').on({ hover: function(e) { jquery

 //Hover event handler 函數

alert("hover"); },spa

click: function(e) { // Click event handler設計

alert("click"); } }); seo

});
當點擊a標籤的時候,奇怪的事情發生了,其中綁定的hover事件徹底沒有反應,綁定的click事件卻能夠正常響應。


可是若是換一種寫法,好比:
$("a").hover(function(){ alert('mouseover'); }, function(){
alert('mouseout'); })

應該使用 mouseenter 和 mouseleave 這兩個事件來代替,(這也是 .hover() 函數中使用的事件)
因此徹底能夠直接像這樣來引用:
$(document).ready(function(){ $('a').on({ mouseenter: function(e) {
事件

//Hover event handler io

alert("mouseover"); }, mouseleave: function(e) {event

//Hover event handler function

alert("mouseout"); }, click: function(e) { cli

// Clickevent handler

alert("click"); } });

});

由於.hover()是jQuery本身定義的事件,是爲了方便用戶綁定調用mouseenter和mouseleave事件而已,它並不是一個真正的事件,因此固然不能當作.on()中的事件參數來調用。
2、如何取消hover事件
你們都知道,可使用off函數去取消綁定的事件,可是隻能取消經過bind綁定的事件,jquery中的hover事件是比較特殊的,若是經過這種方式去綁定的事件,則沒法取消。
$("a").hover(function(){ alert('mouseover'); }, function(){
alert('mouseout'); })
取消綁定的hover事件的正確方式:
$('a').off('mouseenter').unbind('mouseleave');

相關文章
相關標籤/搜索