addEventListener绑定带参函数

版权声明:非商业转载请附上地址与作者信息,谢谢! https://blog.csdn.net/jx950915/article/details/82690848

因为以前一直使用的jquery,然后刚刚在使用原生dom绑定带参的时候出现了一些问题。

初始代码片段

<button class="addEvent">绑定事件</button>

<script>
    const addEvent = document.querySelector('.addEvent')
    addEvent.addEventListener('click',log('绑定事件'))
    function log(msg){
        console.log(msg)
    }
</script>

问题:1、log()初始自执行了;2、button没绑定上这个点击事

后来找资料才找到原因:addEventListener第二个参数接收的是个function,在触发时执行的。你一定要把某个参数传到这个function里的话,用闭包返回一个function

正确写法

function log(msg){
    return function(e){
       console.log(msg)
       //to do
    }
}

猜你喜欢

转载自blog.csdn.net/jx950915/article/details/82690848