跳到主要内容

只触发一次的事件绑定

闭包存一个flag来判断

function one(fn) {
var flag = true;
return function () {
if (flag) {
flag = false;
fn.apply(this, arguments)
}
}
}

document.getElementById("btn").onclick = one(function(e) {
console.log(e)
console.log(this);
})

触发事件然后删除事件绑定

    var btn = document.getElementById('btn');
// 添加事件绑定
btn.addEventListener('click', btnClick, false);

// 按钮点击方法
function btnClick() {
console.log('hello');
// 删除事件绑定
btn.removeEventListener('click', btnClick, false);
}