début en js

Le
yoyo
bonjour,

Suite à mon dernier post sur le js, j'ai décidé de m'y mettre tout doucement
avec un petit menu déroulant.

<div id="menu">
<ul if="menu1" onMouseOver ="afficher('menu1')"
onMouseOut="fermer('menu1')">
<li> <a bref ="#"> Menu 1 </a>
<ul>
<li> <a bref ="#"> Smenu 1 </a> </li>
<li> <a bref ="#"> Smenu 1 </a> </li>
<li> <a bref ="#"> Smenu 1 </a> </li>
</ul>
</li>
</ul>

mais apparemment j'ai du merdé quelque part.

merci de vos conseils
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bruno Desthuilliers
Le #19672591
yoyo a écrit :
function afficher(idBalise)
{
var balise=document.getElementById("idBase");
balise.class.Name=("ouver");
}



C'est 'idBase' ou 'idBalise' ?-)
Olivier Miakinen
Le #19671771
Le 30/06/2009 21:26, yoyo a écrit :

<ul if="menu1" onMouseOver ="afficher('menu1')"



Ce ne serait pas par hasard « id » au lieu de « if » ?

mais apparemment j'ai du merder quelque part.

merci de vos conseils



Tu devrais commencer par valider ton code. Je suppose que
passer un attribut inconnu dans un élément HTML.

Et puis tu peux aussi activer l'affichage des erreurs JavaScript
car je suppose que le résultat du getElementById que tu dois
faire retourne null, et que ça fait une erreur quand tu tentes de
l'utiliser.
SAM
Le #19671761
Le 6/30/09 9:26 PM, yoyo a écrit :
bonjour,

Suite à mon dernier post sur le js, j'ai décidé de m'y mettre tout doucement
avec un petit menu déroulant.

<div id="menu">
<ul if="menu1" onMouseOver ="afficher('menu1')"



Yapas à y avoir ici : if="menu1"

onMouseOut="fermer('menu1')">
<li> <a bref ="#"> Menu 1 </a>



<ul>
<li onmouseover="afficher('menu1');"
onmouseout="cacher('menu1');">
<a bref ="#"> Menu 1 </a>
<ul id="menu1">
<li>...
<li>...
</ul>
</li>
</ul>

mais apparemment j'ai du merdé quelque part.



c'est à croire si tu le dis ;-)

merci de vos conseils



Il n'y a que IE qui a besoin de ces 'onmouseQuueChose',
les autres se déatouillent rien qu'avec les css :

<html>
<style type="text/css">
ul, li { list-style: none; margin:0; padding:0 }
li ul { display: none }
li:hover ul,
li.ie ul { display: block; }
</style>
<script type="text/javascript">
function roll(quoi) { quoi.className = quoi.className==''? 'ie' : '';}
window.onload = function() {
var ie = false; /*@cc_on ie = true; cc@*/
if(ie) {
var m = document.getElementById('menu');
m = m.getElementsByTaName('LI');
for(var i=0, n=m.length; n>i; i++) {
m[i].onmouseover = function() { roll(this); }
m[i].onmouseout = function() { roll(this); }
}
}
}
</script>
<ul div="menu">
<li> <a bref ="#"> Menu 1 </a>
<ul>
</ul>
</li>
<li> <a bref ="#"> Menu 2 </a>
<ul>
</ul>
</li>
</ul>
</html>


--
sm
yoyo
Le #19671991
Olivier Miakinen wrote:

Le 30/06/2009 21:26, yoyo a écrit :

<ul if="menu1" onMouseOver ="afficher('menu1')"



Ce ne serait pas par hasard « id » au lieu de « if » ?



en effet c'est bizzard le copier coller à transposé mon d en f car dans mon
code c'est juste.

mais apparemment j'ai du merder quelque part.

merci de vos conseils







Tu devrais commencer par valider ton code. Je suppose que
passer un attribut inconnu dans un élément HTML.

Et puis tu peux aussi activer l'affichage des erreurs JavaScript
car je suppose que le résultat du getElementById que tu dois
faire retourne null, et que ça fait une erreur quand tu tentes de
l'utiliser.




j'avais complétement oublié le débogueur js.
yoyo
Le #19671981
SAM wrote:

Le 6/30/09 9:26 PM, yoyo a écrit :
bonjour,

Suite à mon dernier post sur le js, j'ai décidé de m'y mettre tout
doucement avec un petit menu déroulant.

<div id="menu">
<ul if="menu1" onMouseOver ="afficher('menu1')"



Yapas à y avoir ici : if="menu1"

onMouseOut="fermer('menu1')">
<li> <a bref ="#"> Menu 1 </a>



<ul>
<li onmouseover="afficher('menu1');"
onmouseout="cacher('menu1');">
<a bref ="#"> Menu 1 </a>
<ul id="menu1">
<li>...
<li>...
</ul>
</li>
</ul>

mais apparemment j'ai du merdé quelque part.



c'est à croire si tu le dis ;-)

merci de vos conseils



Il n'y a que IE qui a besoin de ces 'onmouseQuueChose',
les autres se déatouillent rien qu'avec les css :


pour le hover, je sais mais est ce qu'il va afficher mes sous menu
<html>
<style type="text/css">
ul, li { list-style: none; margin:0; padding:0 }
li ul { display: none }
li:hover ul,
li.ie ul { display: block; }
</style>
<script type="text/javascript">
function roll(quoi) { quoi.className = quoi.className==''? 'ie' : '';}
window.onload = function() {
var ie = false; /*@cc_on ie = true; cc@*/
if(ie) {
var m = document.getElementById('menu');
m = m.getElementsByTaName('LI');
for(var i=0, n=m.length; n>i; i++) {
m[i].onmouseover = function() { roll(this); }
m[i].onmouseout = function() { roll(this); }
}
}
}
</script>
<ul div="menu">
<li> <a bref ="#"> Menu 1 </a>
<ul>
</ul>
</li>
<li> <a bref ="#"> Menu 2 </a>
<ul>
</ul>
</li>
</ul>
</html>




Pascal PONCET
Le #19672071
yoyo a écrit :
mais apparemment j'ai du merdé quelque part.



Bonjour,

Il y a une erreur dans le HTML, à savoir l'attribut "id" de la balise
"ul", qui est nommé "if". C'est déterminant puisque sa valeur est passée
aux fonctions "afficher" et "fermer".

D'autre part, si ça ne fonctionne pas après correction (ou si c'est
juste une erreur de recopie), il nous faudrait le code javascript
correspondant (au moins celui des fonctions appelées).

Cordialement,
Pascal
Pascal PONCET
Le #19672181
Pascal PONCET a écrit :
Il y a une erreur dans le HTML, à savoir l'attribut "id" de la balise
"ul", qui est nommé "if". C'est déterminant puisque sa valeur est passée
aux fonctions "afficher" et "fermer".



Désolé, les autres réponses ne m'étaient pas encore parvenues quand j'ai
écrit mon message.

La suite par contre reste valable, à savoir le code des fonctions.
yoyo
Le #19672171
Pascal PONCET wrote:

Pascal PONCET a écrit :
Il y a une erreur dans le HTML, à savoir l'attribut "id" de la balise
"ul", qui est nommé "if". C'est déterminant puisque sa valeur est passée
aux fonctions "afficher" et "fermer".



Désolé, les autres réponses ne m'étaient pas encore parvenues quand j'ai
écrit mon message.

La suite par contre reste valable, à savoir le code des fonctions.


function fermer(id)
{
var balise= document.getElementById("id");
balise.class.Name=("fermer");
}

function afficher(idBalise)
{
var balise=document.getElementById("idBase");
balise.class.Name=("ouver");
}
yoyo
Le #19675271
Bruno Desthuilliers wrote:

yoyo a écrit :
function afficher(idBalise)
{
var balise=document.getElementById("idBase");
balise.class.Name=("ouver");
}



C'est 'idBase' ou 'idBalise' ?-)



j'avais pas vu, mais il y a encore un truc qui cloche car il se passe rien
Laurent vilday
Le #19675611
yoyo :
Bruno Desthuilliers :
yoyo :
function afficher(idBalise)
{
var balise=document.getElementById("idBase");
balise.class.Name=("ouver");
}


C'est 'idBase' ou 'idBalise' ?-)



j'avais pas vu, mais il y a encore un truc qui cloche car il se passe rien



Tu m'étonnes. Enfin il ne se passe rien ... humm .. disons que tu n'as
pas vu les messages d'erreurs :)

function afficher(idBalise)
{
// pas de " autour du idBalise
// tu ne veux pas un string
var x = document.getElementById(idBalise);

// c'est la propriété className, pas class.Name
x.className = 'ouvert';
}

--
laurent
Publicité
Poster une réponse
Anonyme