【发布时间】:2014-06-03 17:16:11
【问题描述】:
所以我想调用一个函数并使用 vanilla javascript(我已经完成)在点击事件上传递它的参数,但是我在之后分离事件时遇到了问题。当点击事件被触发时,我想调用一个函数并向它传递包括事件对象在内的参数,然后分离事件。我已经尝试了一些事情,但我遇到的问题是匿名函数在调用它后无法被引用,所以我不能将它作为参数传递给事件“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);
}
【问题讨论】:
-
如果你在使用jQuery,你可以使用api.jquery.com/one
-
这可能会有所帮助:How to removeEventListener that is addEventListener with anonymous function?。问题是您无法取消绑定事件处理程序,因为您没有对您绑定的函数的引用。