Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    7

    [Javascript] visibility

    Salve ragazzi,
    premetto che sono alle prime armi con javascript, cmq avrei esigenza di crare una funzione che manipoli la proprietà visibility di qualsiasi div all'interno della pagina html.
    In poche parole, per nascondere il div "uno" utilizzo questa funzione:

    function nascondi() {
    if (document.all) {/*IE*/
    document.all["uno"].style.visibility="hidden"; }
    else if (document.layers){ //NN4
    document.layers["uno"].visibility="hide";}
    else if (document.getElementById) { //NN6 ed Opera
    ocument.getElementById("uno").style.visibility="hi dden";}
    }

    e funziona correttamente, ma volendo parametrizzare in questo modo:

    function nascondi(indice) {
    var tmp="\""+"areausr"+"\"";
    if (document.all) {/*IE*/
    document.all[tmp].style.visibility="hidden"; }
    else if (document.layers){ //NN4
    document.layers[tmp].visibility="hide";}
    else if (document.getElementById) { //NN6 ed Opera
    ocument.getElementById(tmp).style.visibility="hidd en";}
    }

    non riesco a farlo funzionare. C'è un modo per farlo?

    Grazie a chi vorrà rispondermi.

    --
    Paolo

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    hai dimenticato una d...
    codice:
    function nascondi(indice) {
    var tmp="\""+"areausr"+"\"";
    if (document.all) {/*IE*/
    document.all[tmp].style.visibility="hidden"; }
    else if (document.layers){ //NN4
    document.layers[tmp].visibility="hide";}
    else if (document.getElementById) { //NN6 ed Opera
    document.getElementById(tmp).style.visibility="hidden";}
    }
    ps una curiosità,hai detto di aver parametrizzato,quindi penso che tu abbia diverse aree: areauser1,areauser2...areauserN,giusto?
    se è così,alla funzione giustamente gli passi l'indice dell'area da visualizzare/nascondere, ma non lo utilizzi mai...
    oppure non ho capito niente io??

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    7
    Originariamente inviato da ken84
    ps una curiosità,hai detto di aver parametrizzato,quindi penso che tu abbia diverse aree: areauser1,areauser2...areauserN,giusto?
    se è così,alla funzione giustamente gli passi l'indice dell'area da visualizzare/nascondere, ma non lo utilizzi mai...
    oppure non ho capito niente io??
    Hai ragione, x la fetta ho copiato male la funzione:
    eccola:

    codice:
    function nascondi(indice) {
    var tmp="\"+ indice +\"";
    if (document.all) {/*IE*/
    document.all[tmp].style.visibility="hidden"; }
    else if (document.layers){ //NN4
    document.layers[tmp].visibility="hide";}
    else if (document.getElementById) { //NN6 ed Opera
    document.getElementById(tmp).style.visibility="hidden";}
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    prova così...

    codice:
    function nascondi(indice) {
    //var tmp="\"+ indice +\"";
    if (document.all) {/*IE*/
    document.all[indice].style.visibility="hidden"; }
    else if (document.layers){ //NN4
    document.layers[indice].visibility="hide";}
    else if (document.getElementById) { //NN6 ed Opera
    document.getElementById(indice).style.visibility="hidden";}
    }
    [/QUOTE]

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    7
    Originariamente inviato da ken84
    prova così...

    codice:
    function nascondi(indice) {
    //var tmp="\"+ indice +\"";
    if (document.all) {/*IE*/
    document.all[indice].style.visibility="hidden"; }
    else if (document.layers){ //NN4
    document.layers[indice].visibility="hide";}
    else if (document.getElementById) { //NN6 ed Opera
    document.getElementById(indice).style.visibility="hidden";}
    }
    ciao [/QUOTE]

    Beh se ho creato la var tmp in quel modo, è chiaro chq quel tentativo lo abbia gia fatto. Ad ogni modo non va.
    Grazie cmq,
    Paolo

  6. #6
    function nascondi(x) {
    document.getElementById(x).style.visibility = 'hidden';
    }

    onclick="nascondi(this.id);"
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da kya5han
    se ho creato la var tmp in quel modo, è chiaro chq quel tentativo lo abbia gia fatto. Ad ogni modo non va.
    permettimi di dissentire, se in indice passi una stringa quanto ti ha suggerito ken84 e' ineccepibile

    il modo invece con cui vorresti costruirla tu non e' corretto,
    potrebbe esserlo se facessi un eval della dichiarazione
    eval("var tmp=\""+indice+"\"")
    ma e' del tutto inutile e deprecato

    se in indice hai un valore numerico (e' un numero e passi il valore senza apici)
    var tmp="qualsiasicosa"+indice // e' una stringa
    anche solo
    var tmp=""+indice // e' una stringa
    cosi' come
    var tmp=indice.toString() // e' una stringa

    resta il fatto che un id o una classe non possono avere come nome solo un numero (se e' per questo non possono neanche iniziare per un numero), quindi se passassi un numero devi cmq anteporre almeno una lettera -> diventa automaticamente stringa -> che e' quello che si aspetta, x es, document.getElementById

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