gpt4 book ai didi

javascript - 如何将 JavaScript 类实例传递给 DOM 事件监听器?

转载 作者:搜寻专家 更新时间:2023-11-01 04:27:43 24 4
gpt4 key购买 nike

我遇到了一个似乎非常棘手的情况。我想将一个对象的实例传递给由同一对象实例创建的 DOM 元素的事件监听器(如果这有意义的话)。

function Object(callback){
this.callback = callback;
this.node = document.createElement('div');
this.send = function(){
document.getElementById('list').appendChild(this.node);
}
this.node.addEventListener('click',function(){/*this.callback() of Object instance needs to go here*/},true);
}

我知道使用 callback() 可以在事件监听器中工作,但这不是我需要的,因为我将使用实例中的变量,这些变量不会在稍后从构造中传递。

我该如何解决这个问题?

最佳答案

匿名函数改变了this的含义。为了能够在处理程序中使用它,请使用另一个 var,或者不要创建另一个函数:

var elem = this;
this.node.addEventListener('click',function(){ elem.callback(); },true);

this.node.addEventListener('click', this.callback, true);

关于javascript - 如何将 JavaScript 类实例传递给 DOM 事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4121185/

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