相关疑难解决方法(0)

动态添加事件侦听器

我刚刚开始乱用Angular 2,我想知道是否有人能告诉我从元素中动态添加和删除事件监听器的最佳方法.

我有一个组件设置.当单击模板中的某个元素时,我想为mousemove同一模板的另一个元素添加一个监听器.然后,我想在单击第三个元素时删除此侦听器.

我有点使用普通的Javascript来抓取元素,然后调用标准,addEventListener()但我想知道是否有更多的" Angular2.0 "方式,我应该调查.

angular

134
推荐指数
3
解决办法
13万
查看次数

JavaScript:删除事件侦听器

我正在尝试删除侦听器定义中的事件侦听器:

canvas.addEventListener('click', function(event) {
    click++;
    if(click == 50) {
        // remove this event listener here!
    }
// More code here ...
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?这=事件......谢谢.

javascript events event-handling listener

118
推荐指数
7
解决办法
20万
查看次数

JavaScript中的匿名函数的removeEventListener

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

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);
    };
});  
Run Code Online (Sandbox Code Playgroud)

(还有更多代码,但这足以显示问题)

现在我想在某些情况下停止事件监听器.因此我试图做一个removeEventListener,但我无法弄清楚如何做到这一点.我在其他问题中已经读过,无法在匿名函数上调用removeEventListener,但在这种情况下是否也是如此?

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

t.disable = function() {
    window.document.removeEventListener("keydown", this, false);
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能这样做?

还有其他(好的)方法吗?

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

javascript safari anonymous-function dom-events

90
推荐指数
7
解决办法
8万
查看次数