Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361

    Elementi aggiunti con append non riconosciuti da JQuery

    Salve, il titolo è poco intuitivo quindi passo subito a spiegarvi la situazione
    Ho una casella di testo "nome", un bottone "Aggiungi" e un <ul> con id 'lista_nomi'.
    Alla pressione del tasto aggiungi accade questo:
    codice:
    $("#lista_nomi").append('<li class="nome_in_lista">' + $("#nome").val() + '');
    Fin qui tutto ok, il nome compare in lista.. peccato però che questo evento funziona solo se il[*] era presente prima del caricamento della pagina, e non aggiunto dopo tramite metodo append:

    codice:
        $(".nome_in_lista").click(function(){
            alert("OK");
        });
    ho provato anche con createElement() ma non cambia nulla, tutti gli eventi click effettuati sui[*] aggiunti con jquery non vengono catturati.

    Come posso risolvere?
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    ma l'evento click lo racchiudi nel ready? Se non lo fai fallo vedrai che funzionerà quando andrai ad appendere l'oggetto.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    Ciao grazie per la risposta, si l'evento click è già nel ready.. per fare la prova ho inserito manualmente due[*] nel codice html e poi una volta avviata la pagina ne inserisco altri due tramite textbox.. gli elementi vengono aggiunti alla lista, ma cliccandoci sopra solo i primi due (inseriti manualmente) danno il risultato sperato!
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  4. #4
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    per valutare meglio ti metto il codice completo (sopra lo avevo semplificato)
    codice:
    $(document).ready(function() {
    
    
        $('#principale_add').click(function(){
            VOCI_PRINCIPALI[contatore] = new Array();
            VOCI_PRINCIPALI[contatore][0] = $("#voce_principale").val();
            VOCI_PRINCIPALI[contatore][1] = $("[name='link_type']:checked").val();
            if (VOCI_PRINCIPALI[contatore][1] == 2) {
                VOCI_SUB[contatore] = new Array();
            }
            //var newli = document.createElement('li');
            //$(newli).attr('class', 'selettore_voce_principale');
            $("#riassunto_principali").append('<li class="selettore_voce_principale" id="' + VOCI_PRINCIPALI[contatore][1] + '">' + VOCI_PRINCIPALI[contatore][0] + '');
            //$("#riassunto_principali").append(newli);
            contatore++;
        });
    
    
        $(".selettore_voce_principale").click(function(){
            alert("OK");
        });
    
    });
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  5. #5
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    Trovata la soluzione grazie al metodo .live()

    Qui il link che mi ha salvato: Link

    Grazie comunque per l'aiuto
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

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.