Visualizzazione risultati 1 fino 5 di 5

Discussione: Problema con cambio id?

  1. #1
    Guest

    Predefinito Problema con cambio id?

    Salve, avevo creato questo script per cambiare id e far apparire un box al click:

    Codice PHP:
    <script type="text/javascript">
    function
    c00l() {
    var
    e = document.getElementById('search');
    var
    before = document.getElementById('cerca');
    if (
    e.style.display == "none") {
    e.style.display = "block";
    before.id = "cerca_tp";
    } else {
    e.style.display = "none";
    before.id = "cerca";
    }
    }
    </script>
    Il problema è che l' id di partenza è cerca , poi al click diventa cerca_tp e appare al box, ma al click successivo il box scompare (diventando quindi display none) ma l' id di before non torna cerca :S (Potete testarlo qui > http://habbergforum.altervista.org/ sull' ultimo tasto con la lente d' ingrandimento)

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Ovvio che non ti funziona.

    La variabile befor fa riferimento al div con id cerca, visto che cambi id al div, befor fa riferimento ad un div con id cerca che non esiste più.

    Oltre a cambiare id al div dovresti reinizializzare ( rivalorizzare ) la variabile befor in questo modo:

    Codice HTML:
    befor = document.getElementById("cerca_tp");
    Ma questo credo sia ovvio dopo aver spiegato il motivo di perché la funzione non fa quello che vuoi te.
    Ultima modifica di sevenjeak : 04-05-2011 alle ore 14.03.31

    Sevenjeak
    Software developer and much more

  3. #3
    makingweb non è connesso Utente attivo
    Data registrazione
    30-06-2009
    Messaggi
    281

    Predefinito

    L'id si modifica, non è sempre lo stesso quindi anche la variabile before deve essere diversa, io non so se ho capito bene quello che tu volevi fare per questo ho fatto una demo



    Il codice è questo
    Codice PHP:
    <script type="text/javascript">
    function
    c00l() {

    var
    ele = document.getElementById('search');

    if (
    ele.style.display == "none") {
    var
    before = document.getElementById('cerca');
    ele.style.display = "block";
    before.id = "cerca_tp";
    } else {
    var
    before = document.getElementById('cerca_tp');
    before.id = "cerca";
    ele.style.display = "none";
    }
    }
    </script>

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Una soluzione più semplice ed efficace è quella di spostare la dichiarazione delle variabili fuori dalla funzione, in questo modo non si sprecano risorse per effettuare la ricerca degli elementi ad ogni chiamata di funzione e si ovvia al problema dell'identificazione a seconda del nuovo id.

  5. #5
    Guest

    Predefinito

    Grazie mille (:
    Ultima modifica di exabyte : 04-05-2011 alle ore 16.38.58

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •