But no success when you click me
というテキストをクリックすると、エラーが発生します。私はなぜエラーが発生するのか知っています。私の質問は、最高の修正は何ですか?このエラーは、mydiv
をクリックしたときにx.a
が呼び出されたときに発生します。this
はmydiv
です。 mydiv
をクリックすると、どうすればx.a
が正常に実行されるようにすることができますか?'this'とJavaScriptのaddEventListener
<!DOCTYPE html>
<html>
<head>
\t <title></title>
</head>
<body>
\t <div id="mydiv">But no success when you click me</div>
\t <script>
\t \t var x = new Thing();
\t \t var y = document.getElementById('mydiv');
\t \t x.a();
\t \t y.addEventListener('click', x.a, false);
\t \t
\t \t function Thing() {
\t \t \t this.a=function() {
\t \t \t \t this.b();
\t \t \t }
\t \t \t this.b=function() {
\t \t \t \t alert('Success');
\t \t \t }
\t \t }
\t </script>
</body>
</html>
y.addEventListener('click', x.a.bind(x), false);
あなたは(あなたがDIV /ボタンをクリックしたとき)メソッドが呼び出された時点で、メソッドにイベントリスナーをバインド
上記のHTMLファイルはhttp://globebop.com/intro/test/2.htmです。 –
「x.a」は何にも束縛されていません。 'x.a'を'()=> x.a() 'に置き換えてください。 –
申し訳ありません、Toraz。それは間違いです。 –