Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    event.target.display problemi primo click

    ciao a tutti!
    dal titolo non è molto chiaro...in ogni caso questo è il mio problema:

    utilizzo la proprietà css display per fare scomparire ("none") o apparire ("block") un mio elemento della pagina (un p). Lo scomparire/comparire è legato all'evento onclick su di un altro elemento.
    Nella funzione javascript valuto la proprietà display del mio p: se era none passo a block e viceversa.
    Codice PHP:
        function onClick(){
                var 
    el event.target.nextSibling.nextSibling//arrivo a p
                    
    alert(el.style.display);
                    if (
    el.style.display == "none") {
                        
    el.style.display "block";
                        
                    }else{
                        
    el.style.display "none";
                    }
                } 
    In generale funziona tutto bene: l'unico problema è che non parte al primo click. Ovvero: al primo evento onclick, l'alert alert(el.style.display); non mi mostra niente, neanche undefined, nonostante la proprietà sia messa fin da subito nel css relativo all'elemento:
    Codice PHP:
    .dLp{
                
    font-size:12px;
                
    line-height:normal;
                
    displaynone;    
                } 
    Quando utilizavo una variabile booleana non avevo questo problema, ma preferirei valutare il valore della proprietà perchè questo event handler sarà applicato a più elementi nella pagina...e quindi così è più compatto da gestire.

    grazie per il vostro aiuto!

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    quello style riguarda esclusivamente lo stile in linea
    se fisicamente l' elemento ha style="display:none", una condizione come if (el.style.display == "none") restituira' true, altrimenti e' sempre false e di conseguenza ti sembra necessario piu' di un click per il corretto funzionamento

  3. #3
    grazie per la risposta, ma non ho capito bene...

    io parto all'inizio da display=none

    quindi la prima volta che ci clicco sopra dovrebbe essere valutato come true... perchè sono necessari due click?
    poi tutto funziona correttamente con un solo click...

  4. #4

    ho risolto! ma non ho capito...

    allora, sono riuscita a capire cosa volevi dirmi (correggimi se sbaglio):
    le proprietà del css considerate inizialmente da

    node.style.xxxx

    sono solo quelle dichiarate inline (il mio css era embed nel tag style).

    Funzionare, funziona e ti ringrazio... ma non ho capito il perchè :master:

    Se qlc ha voglia di spiegare, resto tutta orecchie!

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    perche' funziona cosi'
    cosi' come settare elemento.style.display='none' e' equiparabile ad avere <elemento style="display:none">
    non per niente si parla dell' oggetto style dell' elemento

    se volessi rilevarne il display per come e' definito nel css, tanto esterno quanto interno, devi usare l' oggetto stylesheets ed avere le idee molto chiare su come giungere a quella regola che in modo diretto o indiretto ne definisca il display

    oppure usare un sistema che tenga conto, indipendentemente da eventuali regole css generiche, di come il browser rappresenti l' elemento in un determinato momento
    http://forum.html.it/forum/showthrea...readid=1152911

    ciao

  6. #6
    grazie!

    direi a questo punto che mettere il css inline o attraverso il DOM è cmq la cosa migliore

    bye bye!

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.