jQuery ajax load () lo script java non è in esecuzione?

Ho letto diversi post su questo problema ma non riesco a risolverlo.

Sto caricando un file html in un div. Il file che sto caricando contiene un elenco non ordinato. Questo elenco dovrebbe essere espanso (un menu con voci di sottomenu) e chiuso. Quindi ho bisogno di js. Ma sfortunatamente questo script non è caricato.

Qualcuno può aiutarmi?

Sarebbe fantastico! Molte grazie 🙂

    Se ho capito cosa hai chiesto correttamente …

    vuoi caricare via ajax in un div sulla tua pagina, chiamiamolo;

    1) div id = “loadStuffHere” di (abc.html)

    2) le cose da popolare “loadStuffHere” provengono da xyz.html

    Quindi, fai questo;

    $ ( “LoadStuffHere”) Carico ( “xyz.html.”);

    MA ASPETTA!! Non vuoi caricare tutto da xyz.html vuoi solo caricare una porzione di xyz.html di (xyz.html)

    Quindi, fai questo;

    $ (“loadStuffHere”). load (“xyz.html #loadMeOnly”);

    MA ASPETTA!! Diciamo che all’interno di div id = “loadMeOnly” è una fisarmonica e quindi significa che deve essere inizializzata, il che significa che devi includere anche i javascript … hmm, cosa fare …

    Penseresti di farlo;

    $ (“loadStuffHere”). load (“xyz.html #loadMeOnly”); $ .getScript ( ‘JS / xyz.js’);

    Bene, quanto sopra fa schifo perché a) avresti bisogno di creare un file js esterno e b) Stai facendo in realtà 2 chiamate http, quando potresti farlo con una chiamata http se lo hai fatto in modo normale non-ajax.

    Quindi … la soluzione migliore è ottenere 2 cose con 1 chiamata (HTML e js – 1 linea, 1 http) ecco come lo si fa;

    $ (“loadStuffHere”). load (“xyz.html #loadMeOnly, script”);

    Questo carica il tag #loadMeOnly E tutti i tag di script, quindi avresti tutto … felice felice 🙂

    il trucco qui è tra virgole … puoi scegliere e caricare qualsiasi cosa vuoi

    Quindi assicurati di aver caricato jQuery in primo luogo, assicurati che il link alla libreria sia nella parte iniziale del tuo codice HTML, quindi qualcosa del genere:

     

    Usa firebug per assicurarti che sia caricato controllando la scheda “net”.

    Assicurati anche di caricare il tuo javascript: (qui l’ho chiamato “main”)

      

    Quindi nel tuo file js fai qualcosa come:

     $.(document).load( function () { alert("loaded!") }); 

    Questo dovrebbe far scattare l’avviso una volta che la pagina è “completamente caricata”, preferisco usare ready() che si accenderà una volta caricato il DOM.

    Se tutto funziona e quello che vuoi fare è caricare ed eseguire js dal tuo file js prova questo:

     .getScript() 

    Questo caricherà ed eseguirà il codice JavaScript che desideri.

    Questa soluzione funziona meglio. Utilizzo di una funzione di richiamata dopo il caricamento del div specifico o del contenitore del contenuto.

     $('#CONTAINER').load('URL_TO_LOAD HTML_ELEMENT_TO_PLUCK_FROM_PAGE_AND_INSERT_INTO_CONTAINER', function () { $.getScript('PATH_TO_SCRIPT_THAT_YOU_REQUIRE_FOR_LOADED_CONTENT'); }); 

    Juhu. L’ho risolto. Non so che questo è il modo più elegante ma funziona 🙂

    jpsilvashy il tuo getscript (); l’ho fatto 🙂 Ho incluso queste due righe nel mio contenuto che dovrebbe essere caricato:

      

    che funzioni.

    Per tutti quelli che hanno lo stesso problema c’è un piccolo suggerimento. Dovresti eliminare i tag body e head. Se sono inclusi, non funziona.

    Ma ora c’è ancora una domanda: perché devo includere questo nel contenuto caricato? Penso che il JavaScript debba essere caricato dopo che il contenuto è stato caricato nel dom.

    Ma quello solo un po ‘di ipotesi!

    Grazie per il tuo ottimo aiuto!

    Lo script non può usare document.ready, il documento è già pronto. Basta inserire lo script tra i tag dello script.

    sbagliato:

      

    corretta:

      

    Ah, capisco … Se vuoi solo caricare un uso html:

     $("selector for div ").load("/path_to_html.html div#main"); 

    Dove div#main è il div che voglio recuperare nel tuo file remoto, ma ricorda che questo deve essere lo stesso dominio per farlo funzionare.

    È ansible caricare il file javascript in modo dinamico con l’aiuto di jQuery.getScript e impostare una funzione di callback. Quando lo script è stato caricato, viene richiamata la funzione di callback. Ecco un esempio di caricamento della libreria di highlightjs da cdnjs :

     $.getScript("https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.6/highlight.min.js", function () { $('pre code').each(function(i, block) { // hljs now is available hljs.highlightBlock(block); }); }); 

    Devi chiamare esplicitamente ahover nella lista non ordinata. Vedi il documentaton .