11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour

Voilà je cherche à pouvoir utiliser la fonction onclick sur un élément d'une liste avec internet explorer étant donné que ça fonctionne avec Firefox comme toujours...

Voici le code source javascript que j'utilise :

  var ul = document.createElement("ul");
  var li = document.createElement("li");
  li.setAttribute("id", "5");
  li.setAttribute("onclick", "supprimer_noeud(this.id)");

  li.appendChild(document.createTextNode(" contenu liste"));
  ul.appendChild(li);
  document.body.appendChild(ul);


Donc comme je le disais ça fonctionne avec FF mais pas IE pour changer.. J'ai tenté de mettre une image à l'intérieur de la balise <li> et de lui donne un attribut onclick pour que lorsqu'on clique sur l'image la fonction javascript soit appelée ça ne fonctionne pas, j'ai essayé en l'entourant d'un div ça ne fonctionne pas non plus, si qqn a une idée ?

Merci.
Modifié par Ptit_Mouss (03 Nov 2006 - 16:32)
Bonjour,

La syntaxe
li.setAttribute("onclick", "...");
n'est pas compatible avec IE. Il faut utiliser :
li.onclick = "...";
ou mieux
li.onclick = [i]<fonction à appeler>[/i];
De plus, il vaut mieux utiliser onclick sur les éléments qui sont faits pour cela en HTML (liens, ...). Voir à ce sujet cette discussion récente : Navigation clavier: menu accessible?.
Merci beaucoup !!
Ca marche Smiley smile

Code modifié, compatible IE & FF :

var ul = document.createElement("ul");
var li = document.createElement("li");

li.setAttribute("id", "5");
li.onclick = function() { supprimer_noeud(this.id); };

li.appendChild(document.createTextNode(" contenu liste"));
ul.appendChild(li);
document.body.appendChild(ul);