如何在不重新创建自身的循环中创建事件处理程序?

时间:2016-09-17 16:40:07

标签: javascript this document addeventlistener

我有一个类成员让我们调用它删除。所以称之为我写这个。删除(arg) 我正在构建一个按钮表,我需要将此函数作为一个事件。

所以当前代码是

var me = this
for (x iterations) {
    button.addEventListener('click',function() {
        me.remove(this) // <- document is passed via this. I need both contexts
}

显然,重新创建函数的每次重复都是错误的代码。

remove.call() 

不起作用,因为在创建之前我无法访问新的上下文。

是不是每次都不重新创建函数的更好的方法呢?

1 个答案:

答案 0 :(得分:0)

它不是非常清楚你所要求的,但你可以避免在循环中重新创建这个功能:

var me = this;
function removeButton() {
    me.remove(this);
}
for (/*x iterations*/) {
    button.addEventListener('click', removeButton);
}