2017-11-28 10 views
0

私は例に従ってきましたが、私のフィドルは機能していません。ここでは、コードです:HTMLとJavaScript - どのように部門にクリックイベントを追加しますか

var showMessage; 
 
    var divTag = document.getElementById("myDiv"); 
 
    divTag.onClick = showMessage(); 
 
    
 
    showMessage = function() { 
 
     alert("You clicked me."); 
 
    }
<div id="myDiv" style="height: 100px; width: 100px; background-color: pink;"> 
 

 
</div>

私はおそらく愚かな何かが欠けているが、私はそれを見ることはできません。ここではdivにclickイベントを置くことができることを読んでいます。誰かが私が間違っていることを知っている?

P.S.はい、私は解読する方法やエラーを修正するか分からない。

+0

問題が何ですか。何が起こるのですか? – SLaks

+0

Javascriptでは大文字と小文字が区別されます。 – SLaks

+1

何も返さない関数の戻り値を代入しています。 – SLaks

答えて

3
はこれにあなたのJSを変更

:質問にも「jQueryの」タグ付けされているので、ここでは同じことのjQueryのバージョンだ

function showMessage() { 
    alert("You clicked me."); 
} 

var divTag = document.getElementById("myDiv"); 
divTag.addEventListener('click', showMessage); 

あなたのコード:divTag.onClick = showMessage();は、機能の応答を呼んでいました関数の代わりにshowMessage

showMessageが呼び出され、その戻り値(undefined)がonClickプロパティに渡されたものです。

マイナー問題:このページは、スクリーンリーダーを使用するブラインドユーザが使用したい場合は、<button>または<a>タグを使う方が良いでしょう。スクリーンリーダーを正しく動作させるために必要なものすべてをエミュレートする必要があります。

+1

ここで@Intervaliaのような解決策が提案されています:https://jsfiddle.net/kc5mor8j/ – Ph0b0x

+0

@ Ph0b0x - あなたのフィドルはJSFiddleで私のために働いた唯一のものです。 – Patricia

+0

私は助けることができる嬉しい@Patricia ... – Ph0b0x

1

あなたはいくつかの問題がありました。あなたは関数として定義し、その後、関数とそれを呼び出すことを試み、その後、空の変数として「showMessage」を定義し

  • を。
  • onClickonclickと同じではありません。
  • showMessageは、(空の)戻り値の割り当てを終了した関数自体を代入するのではなく、onclickイベントに代入しようとしたときに呼び出されました。ここで

あなたのコードの修正版です:

showMessage = function() { 
 
     alert("You clicked me."); 
 
    } 
 

 
    var divTag = document.getElementById("myDiv"); 
 
    divTag.onclick = showMessage; 
<div id="myDiv" style="height: 100px; width: 100px; background-color: pink;"></div>

バニラJSです。

$('#myDiv').on("click",function() {alert("you clicked me")}); 
+0

私はあなたにも答えポイントを与えることができたらいいですね!しかし、@Intervaliaにはポイントがあります。たぶん、私はクリック可能なものを再考すべきです。ありがとうございました。 – Patricia

1

私はちょうどあなたのjQueryのソリューションあげるのjQueryをタグ付けしましたので:

$('#myDiv').click(showMessage); 

をしかし、あなたはjQueryの結合事象をクリックしていること(上記)の前showMessage機能を設定してください。

関連する問題