猿问

javascript onclick

今天写JS的时候遇到这么一个问题:

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

上面是我的JS代码部分,这里注意一下,init函数中的第二句,btn.onclick = btnHandle();
我的本意是点击按钮,执行btnHandle函数,可实际情况是刷新页面之后,btnHandle函数直接执行了。
然后我把代码改成这样

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

把btn.onclick = btnHandle();语句中的()去掉后,代码按我所想的正常运行。
这是为什么?btnHandle 和 btnHandle()


噜噜哒
浏览 422回答 1
1回答

ABOUTYOU

btn.onclick接受一个函数,代表当 btn 被点击的时候执行这个函数,而你的btnHandle()代表了执行这个函数,给 btn.onclick的是他的返回值,当然就先执行了。下面的写法就代表着,当 btn.onclick 时,执行 btnHandle 函数。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答