Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199

    addclass/removeClass a DIV creati dinamicamente

    Ciao a tutti!

    All'interno di una pagina, tramite richiami PHP, dentro un ciclo while, inserisco dinamicamente (in base al valore indicato) altri DIV con id=fin_show e class=fin_show. Vorrei che cliccando su uno di questi esso acquisti la nuova classe fin_show_act, dopodiche, selezionando un'altro, viene tolta la classe fin_show_act a quello selezionato precedentemente e aggiunta a questa nuova selezione.
    Il concetto è piuttosto semplice, però, scrivendo il codice sottostante:

    codice:
    <script>
     $(document).ready(function(){ 
    $('#fin_show').click(function(){ 
    $(this).addClass('fin_show_act'); 
    $(this).siblings().removeClass('fin_show_act'); 
    $(this).siblings().addClass('fin_show'); 
    }); 
    }); </script>
    solo al primo DIV viene cambiata la classe,ma non agli altri.

    Vedendo ciò ho inserito ho sostituito la JQUERY con uno script nell'ONCLICK del DIV in esame in questo maniera:

    codice:
    this.className='fin_show_act'
    In questo modo tutti i DIV acquistano la classe nel momento del click, ma dopo non so come selezionare i siblings per togliere la classe agli altri in caso di un secondo click (su un'altro div ovviamente).

    Che sia in un modo o nell'altro (Jquery o javascript) come posso risolvere il problema?

    Grazie tante!

    Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    $(".fin_show").click(function(){
      if($(".fin_show_act").length > 0) $(".fin_show_act").removeClass("fin_show_act");
      $(this).addClass('fin_show_act'); 
    });
    Dovrebbe bastare questo, leva la parte in js che non serve(this.className='fin_show_act')

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199
    Funziona perfettamente, grazie mille.
    Tuttavia sono demoralizzato dal fatto che non riesco a capirne la logica.

    Grazie mille Vindav!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199
    Scusate se insisto, ma la cosa è un pochino più complicata di quel che ho mostrato.

    Come illustrato sopra io ho questi div che mi escono fuori da un while php. Con il suggerimento di Vindav riesco ad ottenere quello che voglio su questi div. Però qualora seleziono un qualsivoglia di questi div, tramite ajax (che passa il valore del primo div tramite get ad una pagina php elaborante), mi vengono mostrati altri div, all'interno di un div generico sottostante, che hanno dei valori in relazione a quello selezionato (e la cosa si replica finchè esistono nel database dei valori "figli"). Questi ulteriori div sono esattamente uguali a quelli creati inizialmente, quindi stesso id e stessa class, però lo script non ha effetto su questi.
    Ho già tentato di mettere lo script nella pagina php che elabora la richiesta ajax, ma non funziona. Ho tentanto anche di sostituire document con window su entrambe le pagine, ma non funziona neanche questo.
    Tuttavia, inserendo lo script JS (this.className='fin_show_act') all'interno dell'onclick del div di questa pagina php "elaborante" ottengo il risultato di cambiare la classe ai div, ma come prima, non so come fare a toglierla successivamente in caso di click su un'altro di questi secondi (o ulteriori) div.
    Come potrei risolvere il problema?

    Grazie per la pazienza...è tanto complicata la situazione quanto lo è spiegarlo, spero tuttavia che sia riuscito a farvi un quadro almeno comprensibile.

    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    dovresti risolvere usando il metodo on di jquery(o live dipende dalla versione di jquery che stai importando). Come detto prima il codice js da te inserito nell'onclick non serve.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199
    Ancora una volta hai trovato la giusta soluzione, con .live funziona perfettamente, grazie davvero!
    Mi sorprende sempre vedere che ci sono continuamente funzioni nuove e del tutto (a me) sconosciute da imparare.

    Grazie ancora Vindav, ciao!

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.