2010-08-05 3 views

Répondre

1

essayer avec ceci:

document.getElements('#el > li').addEvent('mouseenter', function(e) { 
    var target = document.id(e.target); 
    if (!target.getElement('span')) target.adopt(new Element('span')); 
}); 

si vous souhaitez supprimer la durée de la souris sur, puis ajouter ceci:

document.getElements('#el > li').addEvent('mouseleave', function(e) { 
    document.id(e.target).getElements('span').destroy(); 
}); 

attention car ceux-ci sont mises en œuvre très naïves et sont le strict minimum vous en avez besoin pour travailler.

+0

Merci, ça marche bien! – Binyamin

3
document.getElementById('el').addEventListener("mouseover", function(e){ 
    var e=e.target; 
    if (e.nodeName=="LI") { 
    var span=e.getElementsByTagName('span')[0]; 
    if(!span) { 
     e.innerHTML="<span></span>"; 
    } 
    } 
},false); 

Cela va faire un chèque pour un SPAN existant avant de l'insérer. En outre, il ne nécessite pas JQuery ou tout autre framework JS.

Testé sur Firefox, mais certains navigateurs pourraient gérer la partie e.target différemment alors gardez cela à l'esprit.

+0

Votre exemple ne fonctionne pas. – Binyamin

+0

Non. Mon exemple fonctionne. Je l'ai testé dans Safari 5.0.1, Firefox 3.6.8 et Chrome 5.0.375. Voir ce lien en JavaScript avec HTML: http://ifelse.org/projects/stackoverflow/3417148.html Si vous ne pouvez pas le faire fonctionner, j'apprécierais la courtoisie de détailler comment vous l'avez mis en œuvre afin que je puisse vérifier. – donohoe

+0

;) fonctionne bien dans http://ifelse.org/projects/stackoverflow/3417148.html – Binyamin

Questions connexes