Frage

Um klar zu sein: Ich bin nicht zu fragen, wie auf neue DOM-Elementen vorhandene Haken zu setzen. Ich weiß um die Live () Funktion und die alte livequery Plugin. Ich frage etwas anderes.

Was ich möchte wissen, ist, wie auf die sehr Schaffung neuer DOM-Elemente einzuhaken. Der Grund, warum ich gefragt habe ist, ich bin ein Drittanbieter-Benutzer JS-Skript erstellen, die keine Kontrolle über Skripte First-Party hat. Diese Erstanbieter-Skripte (die verschleiert werden) aktualisieren Sie die Seite regelmäßig durch neue DOM-Elemente hinzufügen. Ich möchte Code auszuführen, nachdem diese Elemente hinzugefügt werden.

$ Verwenden ( '...') .bind ( 'ajaxSuccess', function () .....) arbeitet für einige Ergänzungen, aber nicht alle von ihnen.

Keine korrekte Lösung

Andere Tipps

Wenn sie immer mit dem document.createElement Methode hinzugefügt werden Sie es einfach ersetzen könnte und Ihre Tracking tun dort.

document.replacedCreateElement = document.createElement;
document.createElement = function(tagName) {
    this.replacedCreateElement(tagName);
    //do your tracking  
}

Ich bin mir nicht sicher, warum Sie fragen, ob Sie wissen, über livequery . Livequery ermöglicht es Ihnen, in beliebige neue DOM-Elemente einzuhaken. Außerhalb dieser, ich das einzige, was wissen zu tun Haken in die DOM-Methoden (wie appendChild etc ...)

Die Live () Funktion, die in jQuery integriert wurde, ist eigentlich nicht die vollständige Umsetzung livequery. (Resig dachte, es war zu viel Funktionalität ohne Blasen der Codegröße bis zu weit integriert werden)

Live (), was fehlt, ist die folgende Typ-Funktion:

$('*').livequery(function() {
 // do something
});

Verwenden Sie diese, und es sollte keine Ergänzungen fangen.

Nun, ich ging mit diesem Paar, die auf dem gewünschten DOM-Updates innerhalb von 20 Sekunden oder weniger zu schießen scheint:

$( '#someid' ).bind( 'ajaxSuccess', function() { ... } );
$( '#someid' ).ajaxSuccess( function( e, r, s ) { ... } );

Ich würde lieber nicht den Laden der Seite zu verlangsamen, indem je nach livequery und die replacedCreateElement Lösung verprügelt die CPU.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top