Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
POCO F9 Pro arriva sul mercato con l'obiettivo di portare prestazioni da smartphone top di gamma in una fascia di prezzo "più aggressiva", senza rinunciare a un comparto fotografico finalmente all'altezza. Dopo averlo testato sul campo, emerge uno smartphone molto più completo rispetto alla generazione precedente, ma anche con alcuni piccoli compromessi che diventano difficili da ignorare quando il prezzo di listino sfiora i 1.000 euro.
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Snapdragon Soung Gen 2 è la piattaforma Qualcomm per i dispositivi audio sempre più integrati nel mondo dell'intelligenza artificiale: al prorpio interno tanta potenza elaborativa per gestire al meglio le necessità d'uso dell'agentic AI
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
In occasione del proprio Snapdragon Summit Qualcomm annuncia i due nuovi chip per dispositivi mobile di fascia alta che entreranno nel mercato nel corso del 2027: tanta potenza a disposizione per elaborazioni di intelligenza artificiale sempre più complesse
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 developer – SCJP 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 developer – SCJP 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


Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
MacSync colpisce macOS usando i calendar...
L'agente IA cancella 48 mila file in 103...
Jensen Huang avverte: l'AI può aiutare a...
Elettrico Renault in arrivo in Spagna: 6...
Linux, un file AGENTS.md per insegnare a...
Lo spazzolino da denti di Dyson diventa ...
Future Trends, la nuova installazione a ...
La scrivania che ricarica il telefono ov...
Nextcloud annuncia la versione desktop d...
IA, Bill Gates chiede regole e salvaguar...
Muse Charm arriverà a dicembre e ...
Motorola Signature 27 sarà il primo smar...
Perplexity Portable Computer anche per A...
No, non impugnavi male il tuo iPhone 4: ...
La migliore Fat e-bike del web, ora scon...
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: 13:41.


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