jQuery的one()方法是指綁定一個只執行一次的處理函數。與on()方法不同,on()方法可以綁定多個事件處理函數,而one()方法只會綁定一個。這個方法的使用也很簡單,我們只需要傳入一個事件類型和一個事件處理函數即可。一旦事件被觸發,one()方法所綁定的事件處理函數即被執行,之后它就會自動被解除。
$(document).one("click", function(){ alert("只執行一次!"); });
上面的代碼演示了在document元素上綁定一個點擊事件,并且只會執行一次。在第一次點擊時,會彈出一個alert窗口,但在第二次點擊時則不會有任何反應。這就是one()方法的神奇之處:只綁定一次事件處理函數,卻可以觸發多次事件。
除了click事件,one還可以綁定其他的事件類型,例如hover、submit、keydown、resize等。下面給大家展示一下,如何在一個input元素上綁定一個只會執行一次的事件處理函數:
$("input").one("focus", function(){ $(this).val(""); });
上面的代碼演示了當一個input元素被點擊后,它所綁定的事件處理函數只會被執行一次。其中,$(this)表示當前元素,也就是被點擊的input元素。執行完一次之后,這個處理函數就不再起作用了。
總的來說,one()方法是jQuery中非常實用的一種事件處理方式,尤其適用于只需要執行一次的事件。不過需要注意的是,one()方法只會在第一次觸發事件時綁定處理函數,后續再次觸發事件是不會再次觸發處理函數的。這一點需要在使用過程中注意。