Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-02-2007, 12:17   #1
Isomarcus
Senior Member
 
L'Avatar di Isomarcus
 
Iscritto dal: Mar 2003
Messaggi: 5202
[JS] Script "chiusura" menu

salve a tutti, sto impazzendo con questo semplicissimo script js:

Codice:
window.onload=expand;

function expand(id) {

	var elem = document.getElementById(id);

	for (var i = 1; i<=20; i++) {

	if (document.getElementById('submenu'+i)) {document.getElementById	('submenu'+i).style.display='none';}

	}

	if (elem) {d.style.display='block';}

	}
quello che fa in pratica è espandere dei submenu quando si clicca sull'elemento padre, e contemporaneamente chiudere gli altri già aperti... ora quello che vorrei aggiungere a questa funzione è la possibilità di chiudere il submenu quando si clicca una seconda volta sull'elemento padre... beh parola mia ho provato almeno 10 modi diversi ma non funziona... quello che avevo provato io è controllare se il submenu è già espanso (cioè se il submenu ha display = block) e in caso chiuderli mettendo display = none... ma temo che i controlli condizionali su proprietà di stile (in questo caso display) non funzionino come spero io
preciso che ho cercato di rendere lo script il più leggero e snello possibile, è per questo che è così striminzito... il sito è centrato su tanto php quindi non voglio esagerare col js
Isomarcus è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2007, 12:40   #2
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Ma dove li fai i controlli che dici?
Non puoi mettere il codice per intero integrato in una paginetta da vedere un attimo dove sta l'inghippo?

Ultima modifica di MEMon : 18-02-2007 alle 12:44.
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2007, 14:43   #3
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Isomarcus Guarda i messaggi
Codice:
window.onload=expand;

function expand(id) {
    ....
}
Rispondi a questa domanda: che cosa ti aspetti che ti venga passato nel parametro 'id'???

Tu hai assegnato una funzione a window.onload. L'evento onload viene generato quando la pagina è stata caricata e fin qui ci siamo. Ma non ti viene certamente passato un 'id' di un elemento!!!!
Diciamo che sui browser IE non viene passato alcun valore (id sarebbe undefined), sui browser Mozilla e simili viene passato un oggetto di tipo Event.

Per dirla in breve: quando una tua funzione è usata come "event handler", non sei tu che puoi specificare quali parametri ricevere!
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2007, 16:59   #4
Isomarcus
Senior Member
 
L'Avatar di Isomarcus
 
Iscritto dal: Mar 2003
Messaggi: 5202
scusa, forse non ho capito, ma l'id viene passato solo quando la funzione viene chiamata dal menu (tramite un onclick), quello che fa al caricamento della pagina è solo chiudere tutti gli elementi con id "submenu" aperti!


questo è un piccolo esempio del codice che usa quello script

Codice:
<dt onclick="javascript:show('submenu1');">Menu1</dt>
<dd id="submenu1">
<ul>
<li><a href="pag.html">submenu1</a></li>
<li><a href="#">submenu2</a></li>
<li><a href="#">submenu3</a></li>
</ul>
</dd></dt>
la funzione così com'è funziona perfettamente, ma assolutamente non riesco a fargli chiudere i submenu cliccando sull'elemento padre (sul dt per capirci)
la cosa che ho provato per prima è stata chiamare prima un'altra funzione, che in pratica controllava se gli elementi con id "submenu" successivi all'elemento padre avevano proprietà display = block e nel qual caso la settava a none, mentre in caso contrario chiamava la funzione show ... ma il controllo condizionale su style.display non funziona
Isomarcus è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2007, 08:19   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Isomarcus Guarda i messaggi
scusa, forse non ho capito, ma l'id viene passato solo quando la funzione viene chiamata dal menu (tramite un onclick), quello che fa al caricamento della pagina è solo chiudere tutti gli elementi con id "submenu" aperti!
Ripeto: tu hai fatto una funzione che si chiama expand, che si aspetta di ricevere un 'id' da passare a getElementById. Hai assegnato tale funzione all'evento onload. Bene, quando l'evento onload viene generato, la funzione expand non riceve di certo un 'id'. Sebbene questo non dia problemi (infatti getElementById dovrebbe ritornare null), ha poco senso (almeno secondo me) che tu usi questa tua funzione come event-handler.
Tutto qui quello che volevo dire!
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2007, 20:06   #6
Isomarcus
Senior Member
 
L'Avatar di Isomarcus
 
Iscritto dal: Mar 2003
Messaggi: 5202
ah ok. sì cmq quello che volevo fargli fare all'onload era semplicemente chiudere tutti i submenu aperti, infatti arrivandogli un id nullo la parte dell'espansione viene semplicemente ignorata

cmq ritornando alla domanda iniziale, qualche idea su come posso richiudere i submenu una volta aperti?
Isomarcus è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2007, 15:41   #7
Isomarcus
Senior Member
 
L'Avatar di Isomarcus
 
Iscritto dal: Mar 2003
Messaggi: 5202
up
Isomarcus è offline   Rispondi citando il messaggio o parte di esso
Old 02-03-2007, 15:18   #8
Isomarcus
Senior Member
 
L'Avatar di Isomarcus
 
Iscritto dal: Mar 2003
Messaggi: 5202
up
Isomarcus è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2007, 14:13   #9
Isomarcus
Senior Member
 
L'Avatar di Isomarcus
 
Iscritto dal: Mar 2003
Messaggi: 5202
up
Isomarcus è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
Intel brevetta XBM: la nuova memoria pun...
Film prodotti con l'IA: Disney, insieme ...
Reinstallare Windows senza chiavette o s...
Apple racconta il suo vantaggio nell'AI ...
Cisco Cloud Control, una cabina di regia...
Il software che controlla le Fab va in p...
Il settore tech è il primo bersag...
Windows 11, corretto un bug che poteva o...
X introduce nuove funzioni per i video c...
Blue Origin sta costruendo diversi lande...
DeepSeek avvia lo sviluppo di un chip pr...
Le offerte migliori ora su Amazon sugli ...
Fino a un petabit al secondo! Il piano d...
Cisco punta tutto sull'IA: tutti i 90.00...
Intel Nova Lake riporterà il supp...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:21.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v