【问题标题】:retrieve event object from javascript event and detach the event afterwards从 javascript 事件中检索事件对象,然后分离事件
【发布时间】: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);
}

【问题讨论】:

标签: javascript event-handling


【解决方案1】:

如果您总是想在事件触发后立即分离侦听器,您可以直接从您引用它的处理程序中执行此操作:

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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2023-03-17
    • 2017-01-17
    相关资源
    最近更新 更多