web - button.onclick = func(); vs <button onclick =“func()”?

时间:2016-07-21 10:29:21

标签: javascript html web onclick

=“”

我是javascript的新手,我没有使用jQuery。

当我点击按钮时,我正试图让我的函数btnHandle()运行。

但是,我找到了

btn.onclick = btnHandle();

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

当我使用btn.onclick = btnHandle();时,当我刷新代码而不点击按钮时,会执行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>

2 个答案:

答案 0 :(得分:1)

正如凯文指出的那样,该功能正在立即执行,因为你后面有括号。

但是,这两种方法现在已经过时了。您应该使用addEventListener

btn.addEventListener('click', btnHandle);

答案 1 :(得分:0)

btn.onclick = btnHandle;

没有括号

btnHandle引用函数while btnHandle()执行函数