gpt4 book ai didi

javascript - JavaScript 中匿名函数的 removeEventListener

转载 作者:IT王子 更新时间:2023-10-29 02:45:35 24 4
gpt4 key购买 nike

我有一个包含方法的对象。这些方法被放入对象内部的一个匿名函数中。它看起来像这样:

var t = {};
window.document.addEventListener("keydown", function(e) {
t.scroll = function(x, y) {
window.scrollBy(x, y);
};
t.scrollTo = function(x, y) {
window.scrollTo(x, y);
};
});

(代码多了很多,但这足以说明问题)

现在我想在某些情况下停止事件监听器。因此,我正在尝试执行 removeEventListener,但我不知道该怎么做。我在其他问题中读到无法在匿名函数上调用 removeEventListener,但在这种情况下也是如此吗?

我在匿名函数中创建了一个方法,因此我认为这是可能的。看起来像这样:

t.disable = function() {
window.document.removeEventListener("keydown", this, false);
}

为什么我不能这样做?

还有其他(好的)方法可以做到这一点吗?

奖金信息;这只需要在 Safari 中工作,因此缺少 IE 支持。

最佳答案

如果您在实际函数中,则可以使用 arguments.callee 作为函数的引用。如:

button.addEventListener('click', function() {
///this will execute only once
alert('only once!');
this.removeEventListener('click', arguments.callee);
});

编辑:如果您在严格模式下工作("use strict";)

,这将不起作用

关于javascript - JavaScript 中匿名函数的 removeEventListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4950115/

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