2012-01-01 10 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)を参照してください。 –

答えて

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

+0

'$("#hoverit ")ライブを使用していない限り(1.7+で 'on') –

+0

@ David19801:要素が既に存在しているため、作成後に(mouseover、コードが実行される時間HTMLは上から下に解析されます。 –

0

どちらかあなたのhtmlの終わりにJSを置くかreadyハンドラを使用することです@Royi Namirソリューションを使用し、あなたのコードが動作しない理由は、 DOMは準備ができていないかの要素がこれにあなたはいないハンドラコードの火災は、ソリューションが最後にJSを置くか、あなたがイベントをバインドしようとしている$(document).ready();

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