jqueryone函數方法實現
來源:懂視網
責編:小采
時間:2020-11-27 20:18:43
jqueryone函數方法實現
jqueryone函數方法實現:jquery中有一個方法:one,用途是事件綁定只執行一次就自動解除綁定。源碼看了很久頭暈,決定自己搞一個。研究了很久,用原生的模擬了一次。我用的名字是once。最初的方法是這樣的:function once(dom, event, callback) { // 這一步是為了避免修
導讀jqueryone函數方法實現:jquery中有一個方法:one,用途是事件綁定只執行一次就自動解除綁定。源碼看了很久頭暈,決定自己搞一個。研究了很久,用原生的模擬了一次。我用的名字是once。最初的方法是這樣的:function once(dom, event, callback) { // 這一步是為了避免修

jquery中有一個方法:one,用途是事件綁定只執行一次就自動解除綁定。源碼看了很久頭暈,決定自己搞一個。研究了很久,用原生的模擬了一次。我用的名字是once。
最初的方法是這樣的:
function once(dom, event, callback) {
// 這一步是為了避免修改形參
var temp = callback;
dom.addEventListener(event, function() {
if(temp)
temp();
temp = null;
})
}
這種方法是可以的,但有個問題,事件處理函數依然存在,只是什么都不執行而已,久而久之會變得十分臃腫。
替代方法變成在處理函數里解除本身,但如果用匿名函數的話,會陷入可怕的無限遞歸。
用變量存儲的話就能解決了。
function once(dom, event, callback) {
var handle = function() {
callback();
dom.removeEventListener(event, handle);
}
dom.addEventListener(event, handle)
}
閑暇娛樂之作,希望能幫到一些人。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
jqueryone函數方法實現
jqueryone函數方法實現:jquery中有一個方法:one,用途是事件綁定只執行一次就自動解除綁定。源碼看了很久頭暈,決定自己搞一個。研究了很久,用原生的模擬了一次。我用的名字是once。最初的方法是這樣的:function once(dom, event, callback) { // 這一步是為了避免修