在jquery中,可以利用unbind()方法來刪除hover事件;但不能直接使用“unbind("hover")”語句,因?yàn)閔over是由mouseenter和mouseleave構(gòu)成的,所以要?jiǎng)h除hover效果,只需要移除這兩個(gè)事件即可,語法“元素對(duì)象.unbind("mouseenter").unbind("mouseleave")”。
前端(vue)入門到精通課程,老師在線輔導(dǎo):聯(lián)系老師
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用
本教程操作環(huán)境:windows7系統(tǒng)、jquery3.6.1版本、Dell G3電腦。
今天遇到j(luò)query需要去掉hover的問題,原以為直接unbind("hover")
就可以搞定,可是搞了半天都不行。
$("button").click(function() { $("p").unbind("hover"); });
原因其實(shí)很簡單,hover并不是事件。打開參考手冊(cè),hover其實(shí)由 mouseenter和mouseleave構(gòu)成的。這樣問題就很明了!
/* 這種方法是錯(cuò)誤的 */ $(#hover_div).unbind("hover"); /* 這種方法也是錯(cuò)誤的 */ $(#hover_div).unbind("mouseover").unbind("mouseout"); /* 這種方法是新增的,在老的版本里是無法使用的 */ $(#hover_div).unbind("mouseenter mouseleave"); /* 這種方法正確的,新老版本皆可用 */ $(#hover_div).unbind("mouseenter").unbind("mouseleave");
上面的代碼建議使用第四種,相對(duì)安全些。
使用示例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="js/jquery-3.6.1.min.js"></script> <script> $(document).ready(function() { $("p").hover(function() { $("p").css("background-color", "yellow"); }, function() { $("p").css("background-color", "pink"); }); $("button").click(function() { $("p").unbind("mouseenter").unbind("mouseleave"); }); }); </script> </head> <body> <p>鼠標(biāo)移動(dòng)到該段落。</p> <button>刪除hover</button> </body> </html>
說明:unbind()方法
unbind() 方法能夠移除所有的或被選的事件處理程序,或者當(dāng)事件發(fā)生時(shí)終止指定函數(shù)的運(yùn)行。
該方法也可以通過 event 對(duì)象取消綁定的事件處理程序。該方法也用于對(duì)自身內(nèi)部的事件取消綁定(比如當(dāng)事件已被觸發(fā)一定次數(shù)之后,刪除事件處理程序)。
【推薦學(xué)習(xí):jQuery視頻教程、web前端視頻】