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

    [JQuery] .click() sapere su che 'id' di <a> clicco

    Ciao a tutti,

    dato il codice iniziale html:
    codice:
    <ul class="mostraScelta">[/list]
    mediante delle scelte all'interno della pagina viene generato automaticamente il codice html SENZA RICARICARE la pagina stessa e il codice originale si trasforma in:
    codice:
    <ul class="mostraScelta" style="display: block;">[*]
    Chiodi
    [*]
    Bulloni
    [*]
    Viti
    [/list]
    Se io adesso utilizzo il codice JQUERY:

    codice:
    $('.mostraScelta').click(function(){
    test=$(this).find('a').attr("id"); 
    alert(test);
    return false;
    });//fine $('mostraScelta').click
    con questo codice mi mostra sempre "id17", che selezioni il primo, il secondo, o il terzo elemento della lista; la cosa ha logica perché effettivamente io gli dico di 'trovarmi 'a' partendo da 'ul', e viene trovato il primo!
    Ma come potrei fare a sapere direttamente l'id dell'elemento cliccato?

    ****************************

    Se utilizzo questo codice al posto di quello sopra c'è un problema, non viene visualizzato nulla a video(non viene visualizzato l'alert), come se non esistesse alcun <a> all'interno della mia pagina HTML; dipende forse perché originariamente, al caricamento della pagina, non sono presenti elementi della lista ul né tag con <a> ?
    codice:
    $('a').click(function(){//cliccando su 'a'
    test=$(this).attr("id"); 
    alert(test);
    return false;
    });//fine $('a').click

    Vi prego, aiutatemi, sto impazzendo!!

    Grazie,
    Roberto

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    aggiungi > li cosi da correre tutta la lista
    $('.mostraScelta > li').click(function(){
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ciao Andrea,

    grazie per la risposta!

    Pero' purtroppo non funziona!

    E' come se il codice html all'interno dei tag <ul> non esistesse e non fosse stato aggiunto!

    Ho provato infatti ad aggiungere il codice generato dinamicamente direttamente nella pagina html e allora sì, in questo caso funziona!
    Ricapitolando:


    mi trovo con questo codice all'interno della pagina:

    codice:
    <ul class="mostraScelta">[/list]
    dinamicamente, a seconda delle scelte fatte all'interno della pagina, viene aggiunto il codice:
    codice:
    <ul class="mostraScelta" style="display: block;">[*]
    Chiodi
    [*]
    Bulloni
    [*]
    Viti
    [/list]
    E effettivamente, se io controllo il codice html con Firebug le mie linee html, all'interno della pagina si sono generate!!!

    Ora con il controllo dell'evento (con il suggerimento proposto da Andrea) mi dovrebbe mostrare un'alert dell'id del[*] cliccato:

    codice:
    $('.mostraScelta > li').click(function(){
    test=$(this).find('a').attr("id"); 
    alert(test);
    return false;
    });
    Purtroppo però non lo fa, è come se il codice generato dinamicamente non esistesse, INFATTI se aggiungo il codice a mano(quello che dovrebbe essere aggiunto dinamicamente) e poi ricarico la pagina, allora sì funziona e viene visto il codice html, MA SOLO QUELLO CARICATO ALL'INIZIO, se infatti cambio le scelte all'interno della pagina per cui viene generato altro codice dinamico tra il tag <ul>, questo non viene piu' visto, non compare più l'alert!!!

    AIUTATEMI, vi prego!!!

    Grazie,
    Roberto

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    è normale, dai un occhiata al metodo on di jquery

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Perfetto!!!

    Ho sostituito il codice con:
    codice:
    $('.mostraScelta').on('click', 'li', function() {
    E adesso funziona correttamente!!!


    Grazie 100000!!!

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    A me funziona anche la versione precedente http://webandylab.altervista.org/lista.html
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    il discorso è il medesimo dell'altra discussione... leggiti bene la documentazione del metodo...

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ciao Andrea,

    il tuo codice funziona perché non è generato dinamicamente, se lo generi dinamicamente devi usare necessariamente il metodo .on()


    Il problema è che funzionano solo gli elementi del DOM che sono presenti quando la funzione si esegue, se aggiungi degli elementi dinamicamente non "ereditano" questo comportamento!


    Roberto

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 © 2026 vBulletin Solutions, Inc. All rights reserved.