2016-04-05 7 views
1

stopPropagationメソッドを使用すると、なぜこのエラーメッセージが表示されるのですか?私はdiv ex1のdivをクリックすると、divの背景色が濃いピンクになるような関数が実行される単純なイベントがあります。その後、関数を停止するstopPropagationメソッドを追加しました。しかし、コンソールには機能していないというエラーメッセージが表示されますが、stopPropagationメソッドは引き続き動作します。エラーメッセージ:this.stopPropagationは関数ではありません

HTML

<div id="ex1"><h2>Example 1</h2><p></p><h4>results:</h4></div> 

Javascriptを

document.getElementById('ex1').addEventListener('click', function(e){ 
this.stopPropagation(); 
this.style.backgroundColor = 'deeppink'; 
},false); 

答えて

2

thisがクリックされた要素を参照している、thisを使用しないでください。イベントオブジェクトであるeを使用します。

Mozilla Documentation

document.getElementById('ex1').addEventListener('click', function(e){ 
 
e.stopPropagation(); 
 
this.style.backgroundColor = 'deeppink'; 
 
},false);
<div id="ex1"><h2>Example 1</h2><p></p><h4>results:</h4></div>

関連する問題