JQuery on()是JQuery的一個方法,可以讓我們在對一個元素進行非綁定式的監聽。在JQuery中調用on()時,我們可以利用事件委托,在祖先物體上添加監聽器。這樣,在捕獲階段(從頂級元素逐級向下)時,我們可以匹配任何現有或未來的元素。
使用 on() 調用多次不能替代一次使用on(),這是因為多次調用on()會覆蓋以前的監聽器,而不是添加一個新的監聽器,所以我們應該避免多次進行on()的調用。
// 以下代碼會覆蓋以前的監聽器 $("#foo").on("click", function() { console.log("你點擊了foo!"); }); $("#foo").on("click", function() { console.log("你再次點擊了foo!"); });
應該這樣寫:
$("#foo").on("click", function() { console.log("你點擊了foo!"); }); // 這里添加一個新的監聽器的代碼 $("#foo").on("click", function() { console.log("你再次點擊了foo!"); });
當我們使用離散的方法來添加監聽器的時候,我們可以使用jquery.off()方法來清楚任何以前綁定的監聽器,但這并不是一個理想的方式。因此,在使用on()時,我們應該盡可能避免調用它多次。
上一篇jquery on問題