簡體   English   中英

jQuery函數.on適用於1.8.3但不適用於1.9.1

[英]jQuery function .on works in 1.8.3 but not in 1.9.1

我有一個與jQuery 1.8.3一起使用的功能但是當我升級到1.9.1時它不再工作了,但是文檔沒有變化。 有人知道如何解決這個問題嗎?

$(document).on("hover", "#cart-left", function(){
    $("#cart").addClass('active');
});

http://jsfiddle.net/michalcerny/R9HZp/

感謝你的支持!

在1.9.1中,您應該使用mouseover

$(document).on("mouseover", "#cart-left", function(){
    $("#cart").addClass('active');
});

hover速記的狀態

從jQuery 1.8開始, hover速記已被棄用 請參閱jQuery on()文檔

自jQuery 1.8開始不推薦使用:名稱“hover”用作字符串“mouseenter mouseleave”的簡寫

從jQuery 1.9開始, hover速記不受支持 請參閱jQuery 1.9升級指南

替代

在您的情況下,這意味着您應該使用mouseenter事件。 例如:

$(document).on("mouseenter", "#cart-left", function(){
     $("#cart").addClass('active');
});

請參閱jsFiddle演示

更好地利用on()

值得注意的是,除非傳遞給on()的選擇器引用動態添加到DOM的元素(即在頁面加載之后),否則不需要將處理程序委托document 相反,在這種情況下,您可以處理函數直接綁定到元素,如下所示:

$("#cart-left").on("mouseenter", function(){
    $("#cart").addClass('active');
});

問題不在於“on”函數,而是在1.9.1中已棄用(和刪除)的“hover”偽事件: http//jquery.com/upgrade-guide/1.9/#hover-偽事件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM