Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Più ID ad un DIV

  1. #1
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502

    Più ID ad un DIV

    Salve ragazzi, sto facendo uno script show-hide ma ho alcuni problemi.

    Tramite PHP ho un cliclo che mi genera tanti radio button e ad ogni radio e un div (legato al radio) con delle info maggiori. Questo div, come avrete capito, si aziona sull'onClick del radio. Fin qua tutto bene. Ora il problema è il seguente:

    Io clicco e tramite una semplice funzione mi apre il div. Ma se clicco un altro radiobutton, mi apre anche il secondo div (il primo, però, rimane aperto!!!). Cosa ho pensato? Sull'onClick eseguo due funzioni: hide() e poi show(id_div). Come ragionamento non fa una piega, ma visto che gli ID dei div sono dinamici, tipo div_1, div_2 ecc, non so quanti div ho e non so come farli chiudere tutti.

    Pensavo di attribuire ad ogni div, oltre ad un ID anche una classe chiamate hidden.

    Così nella funzione hide() ricercare tutti gli elementi con la classe hidden e settarli a style.display = 'none', ma purtroppo non esiste una funzione come document.getElementByClass.

    Ho pensato diversamente: non posso aggiungere più ID ad un div?

    codice:
    <div id="div_n hidden">
    </div>
    Ho provato anche in questo modo, ma JavaScript non riconosce più neanche gli ID diversi (div_1, div_2) e quindi va in fallo anche la funzione show(id). Come fare?
    Personal Home Page

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    La funzione getElementsByClassName è facilmente ricreabile, ne trovi svariate implementazioni in rete...

  3. #3
    Per quanto io, di solito, sia contrario a utilizzare qualsiasi framework se non è STRETTAMENTE necessario,
    in questo caso ti suggerisco di usare DOMAssistant:
    http://www.domassistant.com/

    Ti aiuta a selezionare gli elementi che vuoi utilizzando la sintassi dei CSS, e non appesantisce molto.

  4. #4
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502
    codice:
    function getElementsByClassName(_className)
    {
    	var _classArray = [];
    	var _regExp = new RegExp('\\b' + _className + '\\b');
    	//var _getAllTags = this.getElementsByTagName('*');
    	var _getAllTags = document.getElementsByTagName('*');
    	for(var i = 0; i < _getAllTags.length; i++)
    	{
    		if (_regExp.test(_getAllTags[i].className) == true)
    		{
    			_classArray.push(_getAllTags[i]);
    		}
    	}
    
    	return _classArray;
    }
    
    document.getElementsByClassName = getElementsByClassName;
    
    function hide() {
        document.getElementsByClassName('hidden').style.display = 'none';
    }
    Così sarebbe corretta?! o.O Anche se non credo perché mi sa che non posso chiamare una funzione dentro un'altra (non è mica la programmazione ad oggetti)
    Personal Home Page

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma una cosa del genere andrebbe http://www.myhelp.it/t1.php bene?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502
    E' perfetto... veramente perfetto!!

    Solo che non capisco perché non va.....
    Codice PHP:
    <input type="radio" id="pack_type_<?php echo $n?>" name="pack_type" value="<?php echo $id_pack?>" onClick="openinfo(<?php echo $n?>);" />
    <div id="pack_<?php echo $n?>" class="hidden">
    </div>
    Questo codice si ripete in ciclo, quindi

    codice:
    <input type="radio" id="pack_type_0" name="pack_type" value="34" onClick="openinfo(0);" />
    <div id="pack_0" class="hidden">
    </div>
    <input type="radio" id="pack_type_1" name="pack_type" value="24" onClick="openinfo(1);" />
    <div id="pack_1" class="hidden">
    </div>
    Solo che quando clicco appare una pagina bianca o.O
    Personal Home Page

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    E la funzione openinfo dov'è?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502
    Nono, quella c'è... (non nel codice che ho postato io)
    Può essere perché ho tanti div nella pagina?
    Personal Home Page

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da Vash SD
    Nono, quella c'è... (non nel codice che ho postato io)
    Può essere perché ho tanti div nella pagina?
    Vediamola (link a pagina pubblica) cosi forse si capisce il problema.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  10. #10
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502
    Essendo il codice accessibile con alcuni login e restrizioni, ti posto la pagina

    Cerca il grassetto verso metà pagina e lì troverai i punti di applicazione dello script

    Ti ringrazio in anticipo

    codice:
    
    
    Personal Home Page

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.