2017-01-01 5 views
0

私はクリック可能なドロップダウンメニューを作っています。しかし、自分のjsファイルでjavascriptを実行すると、jsは機能しません。しかし、HTML文書のタグにjavascriptを置くと、メニューは正常に動作します。誰もが独自のjsファイルでjavascriptを動作させる方法を知っていますか?javascriptは<script>タグでのみ動作します.jsファイルではありません

function myFunction() { 
document.getElementById("myDropdown").classList.toggle("show"); 
} 

window.onclick = function(event) { 
    if (!event.target.matches('.dropbtn')) { 

    var dropdowns = document.getElementsByClassName("dropdown-content"); 
    var i; 
    for (i = 0; i < dropdowns.length; i++) { 
     var openDropdown = dropdowns[i]; 
     if (openDropdown.classList.contains('show')) { 
     openDropdown.classList.remove('show'); 
     } 
    } 
    } 
}; 
+0

htmlコード? htmlが処理された後にそのjavascriptを呼び出す必要があります。 'body onload =" init(); "'または同様のことがトリックに起因します。 – Mozzie

+0

この問題はおそらくあなたのファイルにスクリプトを含めているのでしょうか?

2

あなたはscript.jsと呼ばれるJSファイルを作成し、bodyタグを閉じる前に、HTML文書にこれを追加する必要があります。

<script src="script.js"></script> 

私はあなたが正しく、スクリプトを含めていないと仮定します。コンソールのエラーを確認してください。

また、headセクションにスクリプトを含めると、HTMLの前に読み込まれる可能性があり、セレクタが見つからない可能性があります。 HTML文書の終わりに(bodyタグを閉じる前に)スクリプトを含めると、スクリプトが実行される前に文書がロードされます。

+0

私は私のjsドキュメントに何か他の名前を付けましたが、私はそれを持っています – COOKIE

+0

スクリプトがブラウザからアクセスできるかどうかを確認します。スクリプトのURLを取得し、ブラウザから呼び出すときにレンダリングされていることを確認します。 – HelpNeeder

+0

FirefoxでF12をクリックしてから、ネットワークタグをクリックして、スクリプトがコード200でレンダリングされているかどうかを確認してください。 – HelpNeeder

0

を試してみてください、あなたは以下のようなものを使用して、HTMLファイル内のファイルをインクルードする必要があります。

<head> 
     <script type="text/javascript" src="location/of/file/filename.js"></script> 
</head> 

そこから、作ります使用しているHTML要素は、実行したいJavaScript関数を呼び出します。

例:

<button onclick="functionName()">Click!</button> 

そして、これはJavaScriptファイルで呼び出している関数に移動して、関数の本体を実行します。

関連する問題