2010-08-05 130 views

回答

1

尝试这样的:

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

,如果你想进行删除鼠标跨度,然后补充一点:

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

要小心,因为这些都是非常幼稚的执行方式,最低限度你需要它来工作。

+0

谢谢,它运作良好! – Binyamin 2010-08-06 15:06:45

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); 

这会为现有SPAN检查插入之前。另外它不需要JQuery或任何其他JS框架。

经过Firefox测试,但部分浏览器可能处理e.target部分不同,所以请牢记这一点。

+0

你的例子不起作用。 – Binyamin 2010-08-05 17:52:49

+0

不,我的例子工作。我在Safari 5.0.1,Firefox 3.6.8和Chrome 5.0.375中测试了它。 查看此链接为HTML与HTML:http://ifelse.org/projects/stackoverflow/3417148.html 如果你不能得到它的工作,我将不胜感激细节你如何实现它,所以我可以验证。 – donohoe 2010-08-08 02:03:34

+0

;)在http://ifelse.org/projects/stackoverflow/3417148.html – Binyamin 2010-08-08 14:28:43