所以我想调用一个函数并使用vanilla javascript(我已经完成)在click事件上传递它参数但是我遇到了在事后分离事件的问题。当click事件被触发时,我想调用一个函数并传递它的参数,包括事件对象,然后分离事件。我已经尝试了一些东西,但我遇到的问题是匿名函数在调用之后无法引用,所以我不能将它作为参数传递给事件“unhandler”。如何在回调参数时捕获触摸事件?
function bindClickExpandEvent(element, type, handler, obj) {
if (element.addEventListener) {
element.addEventListener(type, function (event) {
handler(event, obj);
}, false);
} else {
element.attachEvent('on' + type, function (event) {
handler(event, obj);
});
}
}
function removeClickExpandEvent(elem, eventType, handler) {
if (elem.removeEventListener)
elem.removeEventListener(eventType, handler);
if (elem.detachEvent)
elem.detachEvent('on' + eventType, handler);
}
答案 0 :(得分:0)
如果您总是希望在事件触发后立即分离侦听器,则可以直接从 引用它的处理程序中执行此操作:
function bindClickExpandEventOnce(element, type, handler, obj) {
function boundhandler(event) {
removeClickExpandEvent(element, eventType, boundhandler);
handler(event, obj);
}
if (element.addEventListener)
element.addEventListener(type, boundhandler, false);
else
element.attachEvent('on' + type, boundhandler);
}