我编写了一个一次事件监听器函数但是它一直像往常一样执行事件监听器而不是here是工作代码而是在我写的函数下面
window.once=function(event,cb){
function ccb(e){
event=e||window.event;
if(event){
cb(event);
this.removeEventListener(event,ccb);
}
}
this.addEventListener(event,ccb);
}
window.Element.prototype.once=function(event,cb){
function ccb(e){
event=e||window.event;
if(event){
cb(event);
this.removeEventListener(event,ccb);
}
}
this.addEventListener(event,ccb);
}
答案 0 :(得分:1)
您遇到此问题是因为您尝试删除MouseEvent
事件,而不是MouseEvent
。为了澄清这一点,试试这个:
....
function ccb(e){
event=e||window.event;
if(event){
console.log(event);
}
}
....
记录事件MouseEvent
本身,而
window.once=function(event,cb){
function ccb(e){
....
}
console.log(event)
this.addEventListener(event,ccb);
}
记录字符串Click
解决方法是从您的mouseevent访问密钥type
,例如
window.once=function(event,cb){
function ccb(e){
event=e||window.event;
if(event){
cb(event);
this.removeEventListener(event.type,ccb);
}
}
this.addEventListener(event,ccb);
}