Domanda

Per essere chiari: io non sto chiedendo come mettere i ganci esistenti su nuovi elementi DOM. So che sulla funzione dal vivo () e il vecchio plug-livequery. Sto chiedendo qualcos'altro.

Quello che voglio sapere è come collegare sulla stessa creazione di nuovi elementi DOM. Il motivo che mi chiedo è Sto creando uno script JS utente di terze parti che non ha il controllo sugli script first-party. Questi script di prima parte (che sono offuscati) aggiornare la pagina periodicamente con l'aggiunta di nuovi elementi DOM. Voglio eseguire codice dopo vengono aggiunti quegli elementi.

Utilizzando $ ( '...') .bind ( 'ajaxSuccess', function () .....) funziona per alcune aggiunte, ma non tutti.

Nessuna soluzione corretta

Altri suggerimenti

Se sono sempre stati aggiunti con il metodo document.createElement si potrebbe semplicemente sostituirlo e fare il monitoraggio in là.

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

Non sono sicuro che il motivo per cui si chiede se si sa sulla livequery . livequery vi permetterà di collegare in nuovi elementi DOM arbitrari. Al di fuori di questo, l'unica cosa che so fare è gancio nei metodi DOM (ad esempio appendChild ecc ...)

La funzione Live (), che è stato integrato in jQuery realtà non è l'attuazione piena livequery. (Resig pensato che fosse troppo funzionalità per essere integrati senza dilapidare la dimensione del codice troppo in alto)

In vivo (), ciò che manca è la seguente funzione di tipo:

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

Con questo, e dovrebbe prendere eventuali integrazioni.

Bene, sono andato con questa coppia, che sembra sparare sui aggiornamenti DOM desiderati entro 20 secondi o meno:

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

preferirei non avere a rallentare il caricamento della pagina dalla seconda livequery, e la soluzione replacedCreateElement agitai la CPU.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top