gpt4 book ai didi

javascript - 如何直观地处理单个 JavaScript 事件?

转载 作者:行者123 更新时间:2023-11-30 18:51:01 25 4
gpt4 key购买 nike

我经常需要创建运行一次后就不再需要的单个事件。我的做法是这样的:

A.prototype.someMethod = function () {
var me = this;
this.onWindowMouseUpFunction = function () {
me.onWindowMouseUp.apply(me, arguments);
};
window.addEventListener('mouseup', this.onWindowMouseUpFunction, false);
}

A.prototype.onWindowMouseUp = function () {
window.removeEventListener('mouseup', this.onWindowMouseUpFunction, false);
}

但是,由于事件逻辑分为两个方法,我不能使用匿名函数,而是必须将函数分配给一个变量,我开始认为一定有更好的方法,对吧?

最佳答案

我认为你最好的办法是创建一个自动完成所有这些的包装函数。

有点像

function addOneTimeEventListener(objToListenOn, eventtype, callbackfunction){
var callThenRemove = function() {
callbackfunction();
objToListenOn.removeEventListener(eventtype, callThenRemove, false);
};
objToListenOn.addEventListener(eventtype, callThenRemove, false);
};

用法

addOneTimeEventListener(window, "mouseup", function(){/*tada, anonymus function*/});

关于javascript - 如何直观地处理单个 JavaScript 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3900725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com