Es gibt eine Methode in
jquery: one, die verwendet wird, um das -Ereignis automatisch zu entbinden, erst nachdem es einmal ausgeführt wurde. Nachdem ich mir den Quellcode lange angesehen hatte, wurde mir schwindelig, also beschloss ich, selbst einen zu erstellen. Nachdem ich es lange studiert hatte, simulierte ich es einmal mit Native. Der Name, den ich verwendet habe, war einmal.
Die ursprüngliche Methode sieht so aus:
function once(dom, event, callback) { // 这一步是为了避免修改形参 var temp = callback; dom.addEventListener(event, function() { if(temp) temp(); temp = null; }) }
Diese Methode ist möglich, aber es gibt ein Problem: EreignisverarbeitungFunktionEs existiert immer noch, es führt einfach nichts aus und wird mit der Zeit sehr aufgebläht.
Die Alternative besteht darin, sich selbst in der Handler-Funktion zu entsperren, aber wenn Sie anonyme Funktion verwenden, geraten Sie in eine schrecklich unendliche Rekursion.
Die Verwendung von variablem Speicher kann das Problem lösen.
function once(dom, event, callback) { var handle = function() { callback(); dom.removeEventListener(event, handle); } dom.addEventListener(event, handle) }
Dies ist ein Stück Freizeitunterhaltung, ich hoffe, es kann einigen Menschen helfen.
Das obige ist der detaillierte Inhalt vonImplementierung einer JQuery-Funktionsmethode mit einer Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!