2012-01-01 102 views
1

我:鼠标悬停一旦不工作

<html><head> 
<script type="text/javascript" src="jquery-1.7.min.js"></script> 
<script type="text/javascript"> 
$("#hoverit").one("mouseover", function(){ 
$("#tomato").append('t'); 
}); 
</script> 
</head><body> 
<div id="hoverit">hover over this</div> 
<div id="tomato">mmm</div> 
</body></html> 

我试图让鼠标悬停做一个动作只有一次使用jQuery one命令,它不工作...

任何想法?

+2

您试图绑定事件的事件元素存在之前的处理程序。这包括在['jQuery入门教程](http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery)中。 – 2012-01-01 09:37:08

回答

1

尝试:

<html><head> 
<script type="text/javascript" src="jquery-1.7.min.js"></script> 

</head><body> 
<div id="hoverit">hover over this</div> 
<div id="tomato">mmm</div> 
</body> 
<script type="text/javascript"> 
$("#hoverit").one("mouseover", function(){ 
$("#tomato").append('t'); 
}); 
</script> 
</html> 
+0

哇!它的工作......但为什么? – David19801 2012-01-01 09:38:25

+0

'$(“#hoverit”)。one(“mouseover”,function(){'应该在创建后出现,除非您使用live(或1.7+中的'on') – 2012-01-01 09:39:03

+0

@ David19801:因为元素已经存在于代码执行的时间,HTML从上到下被解析。 – 2012-01-01 09:39:33

0

要么使用@Royi纳米尔的解决方案,是把JS在你的HTML结束或使用ready处理,你的代码是不工作的原因是因为其发射时的DOM还没有准备好或者元素已向其一定到没有创建时的处理程序代码火灾,解决的办法是把JS在年底或使用$(document).ready();

<script type="text/javascript"> 
$(document).ready(function(){ 
$("#hoverit").one("mouseover", function(){ 
$("#tomato").append('t'); 
}); 
}); 
</script>