Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    [JQuery] non perdere i listener sugli elementi del body

    Ciaa tutti,

    secondo voi c'e' una soluzione a questo problema?

    dato questo codice JQuery:
    codice:
                mioHtml=$("body").html();
                nuovoHtml=mioHtml.replace(regEx, valore);
                $("body").html(nuovoHtml);
    Succede che ovviamente che i listener sugli elementi all'interno del body vengono persi dopo aver fatto:
    $("body").html(nuovoHtml);

    Con la linea nuovoHtml=html.replace(patron, valor) sostituisco semplicemente il testo e NON i tag html.

    C'e' un modo per non perdere i listener sugli elementi del tag <body>?

    Più semplicemente, tralasciando la seconda linea, anche se faccio:

    codice:
                mioHtml=$("body").html();
                $("body").html(mioHtml);
    ...perdo tutti i listener!

    C'e' una soluzione?

    Grazie,
    Roberto

  2. #2
    Basta usare dei "live" listener: http://api.jquery.com/on/

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da lucavizzi Visualizza il messaggio
    Basta usare dei "live" listener: http://api.jquery.com/on/
    Ciao, grazie della risposta.

    Purtroppo però non posso toccare il resto del codice, quindi modificare i listener...
    Ci sono altre possibilità?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    ...la unica cosa che potrei fare è spostare la mia parte di codice all'inizio, subito dopo che venga caricato jquery, prima che vengano eseguiti i listener, in questo modo dovrebbe funzionare, domani mattina provo

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ho fatto una prova rapida e così funziona:
    codice:
    <!DOCTYPE html>
    <html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script>
    
    $(document).ready(function(){
        htmlMio=$("body").html();
        $("body").html(htmlMio);
    });
    
    
    $(document).ready(function(){
        $("button").click(function(){
            $("p").slideToggle();
        });
    
    });
    
    
    </script>
    </head>
    <body>
    
    <p>This is a paragraph.</p>
    
    <button>Toggle between slide up and slide down for a p element</button>
    
    </body>
    </html>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.