Visualizzazione dei risultati da 1 a 5 su 5

Discussione: variabili ripetute

  1. #1

    variabili ripetute

    Sto creando un codice javascript... Cliccando su 3 diverse immagini attivo 3 funzioni... All'interno di queste 3 funzioni sono contenute degli if che usano le stesse variabili... Il codice così com'è è lungo, peche in ogni funzione si trovano due variabili uguali... Quindi le due variabili si ripetono tre volte... Ho provato a mettere le due variabili al di fuori delle funzioni, ma il codice non funziona... Come faccio?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    In attesa di nuova relase sfera di cristallo 3.0 (la 2.0 è scaduta e non funziona più) consiglio di postare del codice js da visionare
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Scusa, c'hai ragione...

    Il codice Javascript è questo:
    codice:
    <script type="text/javascript">
    function mostranascondi() {
    var A =document.getElementById('divmn');
    var B =document.getElementById('divmn1');
    if (A.style.display == 'none' && B.style.display == 'none') {
    A.style.display = '';}
    else {A.style.display = 'none';}}
    function mostranascondi1() {
    var A =document.getElementById('divmn');
    var B =document.getElementById('divmn1');
    if (B.style.display == 'none' && A.style.display == '') {
    A.style.display = 'none'; B.style.display = '';}
    else {B.style.display = 'none'; A.style.display = '';}}
    function mostranascondi2() {
    var A =document.getElementById('divmn');
    var B =document.getElementById('divmn1');
    if (B.style.display == '' && A.style.display == 'none') {
    A.style.display = ''; B.style.display = 'none';}
    else {B.style.display = ''; A.style.display = 'none';}}
    </script>
    Questa è l'immagine principale, se cliccata, fa apparire il primo div (divmn):
    codice:
    [img]Photography.png[/img]
    Questo è il primo div (divmn). Appare se viene cliccata l'immagine principale e scompare allo stesso modo:
    codice:
    <div id="divmn" style="display: none;">
    <div align="center">
    
    
    [img]4.jpg[/img]
    
    
    [img]2.jpg[/img]
    
    
    [img]3.jpg[/img]
    </div>
    
    
    [img]arrow-right.png[/img]
    </div>
    Questo div è il secondo (divmn1). Appare se viene cliccata l'immagine "arrow-right.png" che si trova nel primo div e scompare se viene cliccata l'immagine "arrow-left.png" contenuto nel secondo div (divmn1). Ovviamente se appare il secondo div, prima scompare il primo div, allo stesso modo al contrario. Scompare il secondo div e appare il primo:
    codice:
    <div id="divmn1" style="display: none;">
    <div align="center">
    
    
    [img]1.jpg[/img]
    
    
    [img]5.jpg[/img]
    
    
    [img]6.jpg[/img]
    </div>
    
    
    [img]arrow-left.png[/img]
    </div>
    Così com'è il codice funziona perfettamente. In tutte e tre le funzioni (mostranascondi, mostranascondi1, mostranascondi2) vengono usate due variabili identiche (var A =document.getElementById('divmn') var B =document.getElementById('divmn1')) che servono a controllare lo stato dei due div. Visto che sono ripetute, ho pensato di semplificare mettendone solo due tipo così (ho tolto "var", perchè se ho letto bene, si rende la variabile globale):
    codice:
    <script type="text/javascript">
    A =document.getElementById('divmn');
    B =document.getElementById('divmn1');
    function mostranascondi() {
    if (A.style.display == 'none' && B.style.display == 'none') {
    A.style.display = '';}
    else {A.style.display = 'none';}}
    function mostranascondi1() {
    if (B.style.display == 'none' && A.style.display == '') {
    A.style.display = 'none'; B.style.display = '';}
    else {B.style.display = 'none'; A.style.display = '';}}
    function mostranascondi2() {
    if (B.style.display == '' && A.style.display == 'none') {
    A.style.display = ''; B.style.display = 'none';}
    else {B.style.display = ''; A.style.display = 'none';}}
    </script>
    Però così non funziona. Con un programma per i linguaggi html javascript e css (HTML-KIT) mi dice che gli if necessitano di oggetto, perchè non ne hanno. Questo significa che le variabili non vengono considerate (ovviamente l'ho testato sia su google crom sia su internet explorer, ma non funziona). Come faccio?

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Cosi' come e' scritto le variabili A e B vengono istanziate ben prima che gli oggetti ai quali si riferiscono siano stati inviati alla pagina... modifica:
    codice:
    var A;
    var B;
    window.onload = function() { 
      A = document.getElementById('divmn'); 
      B = document.getElementById('divmn1'); 
    };
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    grazie, funziona perfettamente...
    Se volessi aggiungere altre due variabili che si ripetono, tipo C e D, dovrei modificare così:
    codice:
    var A;
    var B;
    var C;
    var D;
    window.onload = function() {
    A = document.getElementById('divmn');
    B = document.getElementById('divmn1');
    C = document.getElementById('divmn2');
    D = document.getElementById('divmn3');};

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.