Non credo che questa domanda sia stata posta prima, almeno non nel modo in cui ho bisogno di rispondere. Sto usando la funzione di caricamento di jQuery. Ho un problema quando carico solo frammenti di pagina.Gli script vengono eliminati con jQuery .load
Quando si utilizza qualcosa come:
$('#content').load('loadTest.html');
Tutti gli script su loadTest.html carico più che bene. Tuttavia, quando i frammenti di caricamento della pagina come questo:
$('#content').load('loadTest.html #content');
gli script vengono eliminati prima del DOM in fase di aggiornamento
Questo è chiaramente documentato in http://api.jquery.com/load/ che dice:
Nota:Quando chiamando .load() utilizzando un URL senza un'espressione selettore suffissa, il contenuto viene passato a .html() prima che gli script vengano rimossi. Questo esegue i blocchi di script prima che vengano scartati. Se, tuttavia, viene chiamato .load() con un'espressione selettore aggiunta all'URL, gli script vengono eliminati prima che il DOM venga aggiornato, motivo per cui non vengono mai eseguiti. Un esempio di entrambi i casi si può vedere qui sotto:
ho capito che ho potuto solo caricare esternamente lo script che può essere utilizzato ovunque, ma il fatto è che io sto usando un sistema di ajax pagina di livello in cui tutto viene caricato in modo dinamico. Quindi non mi sento davvero di avere ogni singola funzione javascript che scriverò mai (100 a questo punto) in file esterni. Soprattutto perché alcune di queste funzioni javascript sono fatte da valori caricati da un database che non riesco a spiegare in un file .js.
Esiste una soluzione alternativa affinché gli script vengano eliminati prima che il DOM venga aggiornato? Potrei in qualche modo caricarli manualmente? Ogni piccolo esempio mi sarebbe di aiuto.
Per cosa sarebbe bello? O al contrario: perché non scrivi la tua funzione di caricamento che fa esattamente quello che vuoi? – hakre
@hakre Poiché l'intero sito è basato su AJAX, non sempre so quali funzioni di javascript debbano essere caricate quando si fa clic su un collegamento. Non so come riportare manualmente gli script in questo. Il carico è stato rimosso. – Galway