parentNode + tag h2 postato il 17/02/2009 13:04:01 nel forum programmazione, gdrcd e open source e modificato da maverick21 il 17/02/2009 15:11:51
Eccomi ancora qui con un altro dubbio: ho creato questa pagina http://laconteaganesh.altervista.org/home.html (non badate alla rozzezza, è ancora agli inizi) e ho fatto in modo che passando col mouse su ognuno dei div questo si allarghi fino a contenere la descrizione del marchio e un link (per ora inattivo) per aprire la pagina relativa al marchio stesso.
Gli eventi usati sui div son 'onmouseover' per allargare il div e 'onmouseout' per riportarlo a grandezza naturale, ho ovviato al fatto che il link è considerato come onmouseout usando il parentNode e tutto funziona.
Ho però deciso di aggiungere un <h2> come titolo dei div che si allargano (per ora solo il primo, "Creed" contiene l'<h2>), ma nonostante il parentNode è considerato ancora come onmouseout, come potrei risolvere?
Se non mi sono spiegato bene basta che apriate il link e tutto vi sarà più chiaro.
Questo è il codice css di uno dei div:
Pagine → 1 2
18/02/2009 12:11:10 e modificato da maverick21 il 18/02/2009 12:35:10
Grazie appena posso lo provo, cmq per quanto riguarda il <br /> dopo l'<h2> l'ho lasciato solo perchè ho provato ad aggiungere al volo l'<h2> ovviamente l'avrei tolto ;P
Grazie anche per gli altri consigli (alcuni li sapevo ma del resto preferisco prima fare e poi modificare al doctype che più si adatta).
EDIT:
Allora, provato l'ho provato ed effettivamente risolve il problema, ho seguito quello che mi dicevi dell'innerHTML e ho sostituito il
18/02/2009 14:53:24 e modificato da maverick21 il 18/02/2009 15:23:55
Ecco ok, spiego un attimo quello che voglio fare così spiego bene il problema:
Ho modificato in modo che non sia più onmouseover l'evento che fa allargare il div ma l'onclick, così non va insieme la vista ed è più gestibile dall'utente; quindi quando la pagina viene caricata fra i tag <div> sarà contenuto solo il link per allargarlo e sarà contenuto, poi quando si clicca sul link il div in questione si allarga contenendo dopo l'<h2> e la descrizione, il fatto è che non se si può usare il removeChild per rimuovere il link, per poi togliere la descrizione el'<h2> no problema.
Inoltre la funzione richiamata con l'evento onmouseout non saprei come gestirla per far sì che il contenuto del div torni quello iniziale in modo da non dover creare un nuovo child <a>. Fare in modo che all'onload del body si riempano i div con la funzione richiamata dall'onmouseout sarebbe una cosa immane, per caso ci sono altre soluzioni?
EDIT:
Ok aggiunto il fatto che la funzione che ripristina il div iniziale cancelli il titolo e il contenuto del div allargato e ho fatto così:
18/02/2009 16:09:22
18/02/2009 18:19:04 e modificato da maverick21 il 18/02/2009 18:34:56
Ok, avevo fatto così perchè avevo trovato su w3school che setAttribute() voleva come argomenti name e value.
C'è una cosa che però continuo a non capire: id è il tipo di attributo che voglio impostare, in questo caso appunto id, ma varid non riesco a capire come gestirla. Cioè la variabile varid non esiste e ovviamente quando provo mi dice che non è stata inizializzata, ho provato anche a mettere titleEl e contentEl ma mi dice sempre che non esiste quando provo a fare removeChild.
18/02/2009 18:50:38 e modificato da maverick21 il 18/02/2009 18:51:27
Che è esattamente la prima cosa che ho fatto, ovvero:
18/02/2009 19:07:24 e modificato da darkside of breakfast il 18/02/2009 19:08:19
div.removeChild(titleId);
div.removeChild(contentId);
a occhio direi XD che visto che non sono variabili ma sono dei value ben noti, ci vanno degli apicioni tipo così
div.removeChild('titleId');
div.removeChild('contentId');
18/02/2009 20:36:42
Facendo così mi dice:
"uncaught exception: [Exception... "Could not convert JavaScript argument arg 0 [nsIDOMHTMLDivElement.removeChild]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: http://laconteaganesh.altervista.org/js/function.js :: provadue :: line 62" data: no]
Line 0"
e la riga 62 è appunto quella del removeChild ç__ç
18/02/2009 21:16:57
prova a farlo separato, non saprei cosa dirti, tutto il codice non l'ho letto :P
var canc = document.getElementById("titleId");
div.removeChild(canc);
18/02/2009 21:37:20
OK funziona ora, il che è molto strano ma vabbè.
L'unica è che adesso mi viene lo stesso messaggio di errore, ovvero che non c'è titleId dato che non è ancora stata creata, quando si verifica l'onmouseout prima che si sia verificato l'onclick, c'è per caso un modo per evitarlo?
19/02/2009 12:00:03 e modificato da maverick21 il 19/02/2009 12:03:28
Era ovviamente la prima cosa a cui avevo pensato, solo che mi dimenticavo ancora che titleId è l'id e non la variabile corrispondente ad esso xD risolto ovviamente ;P
Una domanda invece, come mai su FF funziona la cosa dello z-index mentre su IE no? Ho letto un'altra discussione con lo stesso problema in cui si diceva che per essere usata su IE bisogna settare position ad absolute, cosa che avevo già fatto, ma nada ç__ç il codice del div lo trovate nel primo post
Discussione seguita da
Pagine → 1 2
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
I dati del generatore di rank sono stati aggiornati!