2016-04-04 9 views
-2

これは私のブラウザで試したかったW3Schoolsの小さな練習です。ファイルを別々に設定すると、トグルアニメーションは機能しませんでしたが、HTML内にスクリプトを置くと機能しました。ファイルが分かれているときに間違ってリンクしていますか?私も<head>タグの間にスクリプトを置こうとしましたが、それもうまくいきませんでした。 HTML:このHTMLファイルとJavaScriptファイルは正しくリンクされていますか?

<!DOCTYPE html> 
<html> 
    <head> 
     <link rel="stylesheet"type="text/css"href="main.css"/> 
    </head> 
    <body> 
     <div class="container" onclick="myFunction(x)"> 
      <div class="bar1"></div> 
      <div class="bar2"></div> 
      <div class="bar3"></div> 
     </div> 
    <script type="text/javascript"src="script.js"></script> 
</body> 
</html> 

JS:

function myFunction(x){ 
    x.classList.toggle("change") 
} 

ありがとうございます!あなたがHTMLファイルと同じフォルダ内に「script.js」としてのJavascriptファイルを保存した場合

+4

をHTMLでは、最初に定義する必要があります。例えば。あなたの 'script'タグを' head'セクションに入れてください。副次的なことに、JSをHTMLコードで直接使用することは、大規模なコードでは維持するのが難しく、そのような間違いにつながる可能性があるため、一般に悪い習慣です。 W3Cはちょうど小さなデモであるため、ここで実行します。したがって、できるだけ短く簡単にします。 – blex

+0

@blex属性のJSはすぐには実行されません。 –

+0

@Hawkeye jQueryのトグルではなく、ネイティブの['classList'](https://developer.mozilla.org/en-US/docs/Web/API/Element/classList)' toggle'メソッドを使用しています。 –

答えて

1

タグ

<script type="text/javascript"src="script.js"></script> 

で十分です。

はまた、次の行がxのコンテキストを持っていないことに気づく:

<div class="container" onclick="myFunction(x)"> 

たぶん、あなたのような何かをしようとしている:あなたはJSの機能が利用できるようにしたい場合は

<div class="container" onclick="myFunction(this)"> 
関連する問題