Question

Pour être clair: Je ne demande pas comment mettre des crochets existants sur de nouveaux éléments DOM. Je sais que sur la fonction en direct () et l'ancien plugin livequery. Je demande autre chose.

Ce que je veux savoir est comment accrocher à la création même de nouveaux éléments DOM. La raison pour laquelle je demande est que je crée un utilisateur tiers script JS qui ne contrôle pas les scripts de première partie. Ces scripts de première partie (qui sont brouillées) mettre à jour la page périodiquement par l'ajout de nouveaux éléments DOM. Je veux exécuter du code après ces éléments sont ajoutés.

Utilisation $ ( '...') .bind ( 'ajaxSuccess', function () .....) fonctionne pour certains ajouts, mais pas tous.

Pas de solution correcte

Autres conseils

S'ils sont toujours ajoutés avec la méthode document.createElement vous pouvez simplement le remplacer et faire votre suivi là-bas.

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

Je ne sais pas pourquoi vous demandez si vous connaissez livequery . livequery vous permettra de connecter de nouveaux éléments DOM arbitraires. En dehors de cela, la seule chose que je sais faire est de crochet dans les méthodes DOM (comme appendChild etc ...)

La fonction en direct () qui a été intégré dans jQuery est en fait pas la mise en œuvre complète de livequery. (Resig pensé qu'il était trop fonctionnalité à intégrer sans faire sauter la taille du code trop loin)

En direct (), ce qui manque est la fonction de type:

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

Utilisez cela, et il devrait prendre des ajouts.

Eh bien, je suis allé avec cette paire, qui semble tirer sur les mises à jour DOM souhaitées dans les 20 secondes ou moins:

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

Je préfère ne pas avoir à ralentir le chargement de la page en fonction de livequery, et la solution de replacedCreateElement Thrashed la CPU.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top