Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    70

    div che compare "solo" al secondo clic

    nella mia pagina html hp un div, che tramite css ho messo a display: none

    tramite un altro link, attivo una semplice funzione che trasforma il display del div da none a block, per renderlo visibile:


    codice:
    function newx() {
    	 if (document.getElementById){
        		if(document.getElementById('xxxx').style.display == 'none'){
          			document.getElementById('xxxx').style.display = 'block';
        		} else {
          			document.getElementById('xxxx').style.display = 'none';
        		}
      	}
    }
    e va tutto bene. Solo che appena accedo a questa pagina html, o subito dopo un aggiornamento con F5, DEVO CLICCARE 2 VOLTE per far apparire il div.
    dopo questa prima volta, appare e scompare tranquillamente con un clic solo.


    perché capita questo?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Credo (non sono ferrrato in teoria) che "rimanga memorizzato" l'imput precendente, forse risolvi cosi:
    codice:
    <script language="JavaScript" type="text/JavaScript"> 
    <!-- 
    function ShowLayers(){
    var elemento = document.getElementById("xxx")
    var display = (elemento.style.display == "block") ? "none" : "block";
    elemento.style.display=display
    }
    //-->
    </script>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    il perche' e' semplice: con
    if(document.getElementById('xxxx').style.display == 'none'){...}
    controlli che nello stile in linea dell' elemento il display sia settato a none

    questo, se l' elemento e' nascosto in conseguenza di un css esterno non si verifica
    con il risultato di eseguire l' else, cioe' nasconderlo nuovamente al primo click

    settare un valore per una proprieta' css via javascript, pero', equivale a (ri)definerne lo stile in linea
    quindi dopo aver richiamato
    document.getElementById('xxxx').style.display = 'none';
    e' come se nell' elemento adesso fosse presente uno style="display:none;",
    la condizione si verifichera' e al prossimo click il display verra' settato a 'block'

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    70
    era in effetti una stupidaggine.

    anche se il div dipende da un css esterno, basta aggiungere lo style alla riga:

    codice:
    <div id="xxxx" class="xxxxclasse" style="display: none;"></div>
    come sempre, grazie mister X

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.