2017-05-18 10 views
0
<script> 
    var clrbtn = document.createElement('button'); 
    clrbtn.addEventListener('click', sayHello()); 
    function sayHello() { 
     console.log('Hello'); 
    } 
</script> 

ドキュメント読み込み時にコンソールでHelloが表示されるのはなぜですか?addEventListenerはドキュメントの読み込み時に動作します

+0

あなたのリスナーを呼び出す代わりに、あなたのリスナーへの参照を渡しているので。それはタイプミスです。sayHelloです。 – pvg

答えて

1

これは、それはすぐに関数を実行しますclrbtn.addEventListener('click', sayHello())

にこの行sayHello()です。あなたがのsayHello()を呼び出すのではなく、それへの参照を作っているので、理由がある

clrbtn.addEventListener('click', sayHello) 
+0

downvoteの理由は何ですか?あなたが私の間違いを訂正するのを助けることができれば、私はあなたに感謝します – brk

+0

どういう意味ですか? – Alex

+0

@Alexがこの回答をお手伝いしましたか? – brk

0

変更して、すなわちsayHello

0

clickイベントで実行する関数の名前だけをaddeventlistenerに渡してみてください。現在、sayHelloを事前に実行し、実行のaddeventlistener値(未定義)に渡そうとする括弧があります。要するに

は、次の操作を行います。

clrbtn.addEventListener('click', sayHello) 
関連する問題