2011-06-17 10 views
1

こんにちは、以下に示すように、メニューバーのコードを書きました。メニューバーは、マウスがメニュー上にあるときにのみ展開されるはずです。しかし、それはデフォルトで拡大しています。メニューバーでjavascriptエラーが発生する

<dt onmouseover="javascript:montre('smenu1');"> 

    <a href="#">&#9679; About Us</a></dt> 
    <dd id="smenu1" onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre();"> 
     <ul> 
      <li><a href="../php_sql_scripts/index.php">&ordm; What is microEP?</a></li> 
     </ul> 
    </dd> 

<dt onmouseover="javascript:montre('smenu12');"> 

    <a href="#">&#9679; News</a></dt> 
    <dd id="smenu12" onmouseover="javascript:montre('smenu12');" onmouseout="javascript:montre();"> 
     <ul> 
      <li><a href="../php_sql_scripts/news.php">&ordm; Department News</a></li> 
     </ul> 
    </dd> 

<dt onmouseover="javascript:montre('smenu13');"> 

    <a href="#">&#9679; Calendar</a></dt> 
    <dd id="smenu13" onmouseover="javascript:montre('smenu13');" onmouseout="javascript:montre();"> 
     <ul> 
      <li><a href="../php_sql_scripts/calendar.php">&ordm; Calendar of events</a></li> 
     </ul> 
    </dd> 


<script type="text/javascript"> 
window.onload=montre; 
function montre(id) { 
var d = document.getElementById(id); 
    for (var i = 1; i<=14; i++) 
    { 
     if (document.getElementById('smenu'+i)) 
     { 
      document.getElementById('smenu'+i).style.display='none'; 
     } 
    } 
if (d) 
    { 
    d.style.display='block'; 
    d.style.zIndex = 12; 
    } 
} 
</script> 
+0

これで問題は解決しませんが、イベントハンドラ内のすべてのjavascript:は不要です。削除する必要があります。 –

+2

[jQuery](http://api.jquery.com/category/events/)にonDOMReadyハンドラが追加されました。ピートの愛のために。 –

答えて

2

ページが読み込まれたら、要素を非表示にする必要があります。これを行うための別の方法があります:

  1. はexempleため、display: none
  2. は、CSSファイル
  3. 異なる負荷イベントの一つで呼び出しmontre()を通じてこれを行うことで、各要素にスタイルを追加window.onload

コメントの1つに書かれているように、別のトピックでは、これを行うためにライブラリを使用する必要があります(例:jQuery)。

+0

それは働いています..ありがとう.. –

関連する問題