2016-07-21 9 views
0

私はjavascriptを使い慣れていないので、jQueryを使用していません。web - button.onclick = func(); vs <button onclick = "func()"?

ボタンをクリックしたときに私の機能btnHandle()を実行しようとしています。

しかし、私は

btn.onclick = btnHandle(); 

が、私はボタンをクリックせずにコードを更新するとbtnHandle()関数が実行され、

<button id="sort-btn" onclick="btnHandle()">submit</button> 

私はbtn.onclick = btnHandle();を使用

異なっていることがわかりました。

ボタンをクリックしたときにのみ機能が実行されるようにします。

<button id="sort-btn" onclick="btnHandle()">submit</button>が好きなように動作します。

なぜ以前はうまくいきませんか?ページがロードされたときに、なぜonclickイベントが発生するのですか?

<button id="sort-btn" onclick="btnHandle()">submit</button> 

    <script type="text/javascript"> 

    function btnHandle() { 
     var aqiData = getData(); 
     aqiData = sortAqiData(aqiData); 
     render(aqiData); 
    } 


    function init() { 
     var btn = document.getElementById("sort-btn"); 
    //  btn.onclick = btnHandle(); 
    } 

    init(); 
    </script> 

答えて

1

を実行します。

しかし、これらのアプローチはどちらも古くなっています。 addEventListenerを使用する必要があります。

btn.addEventListener('click', btnHandle); 
0
btn.onclick = btnHandle; 

括弧なし

btnHandleは btnHandle(ながら関数を参照)ケビンが指摘するように、あなたがそれの後に括弧を持っているので、機能がすぐに実行されている機能

関連する問題