2011-07-21 22 views
3

リンクの下にリンクの説明を表示するul要素に基づいてメニューを作成しようとしています。jQuery mouseoverがli要素で機能しない

はこれまでのところ、私は、しかし、私はli要素の上にマウスを移動するたびに、次のコード(少し単純化)

 echo ' 
<script> 
     $("#menu_1").mouseover(function() { 
      $("#description").replaceWith("test"); 
     }); 
</script> 

<ul class="menu_top"> 
<li id="menu_1"><a href = "#">Test</a></li> 
</ul> 

<div id="description" class="menu_desc">&nbsp; 
</div> 

'; 

を持って、何も起こりません。

誰かが間違っていることを知っていますか?

答えて

3

JavaScriptコードが実行されたときに実行されます。これは、文書が実際に準備される前に発生する可能性があります。あなたの場合、に実際に存在する前に#menu_1要素を選択しようとしています。

$(function() { 
    // this code is run only after the whole document is ready to go 
    $("#menu_1")... 
}); 
+0

はい、それは問題でした。私はdivの後に移動しましたが、現在はうまくいきます。 – BBog

+0

ありがとう私は本当に感謝しています。 – BBog

4

あなたがそうでなければ、あなたのmouseoverイベントがあまりにも添付するには何もしています、文書の読み込みが完了した後、あなたのイベントの割り当てが発生したことを確認する必要があります。

$(document).ready(function(){ 

$("#menu_1").mouseover(function() { 
      $("#description").replaceWith("test"); 
     }); 

}); 

はここで働いてデモです:http://jsfiddle.net/2mWb3/

4

#menu1です

<script> 
    $(function(){ 
     $("#menu_1").mouseover(function() { 
      $("#description").replaceWith("test"); 
     }); 
     }); 
</script> 
にまだDOMでこのコードを実行する。..

変更を

あなたのコードはdocument.readyイベントで実行されます。

+0

は '$(関数(){'速記のための '$(ドキュメント).ready(IS:あなたはほぼ確実に文書の準備ができた後、jQueryのは、あなたのためのショートカットの方法を提供し、すべてのjQueryのコードを実行したいので、 function(){'? – Curt

+0

はい、それは省略形です!http://api.jquery.com/ready/ – binarious

関連する問題