Eventlistener使用它

时间:2015-09-17 08:46:42

标签: javascript addeventlistener event-listener

您好我有以下代码:

popupTriggerItems[i].addEventListener('click', function(){popup('left');}, false);

var popup = function(which) {
    console.log(this);
    var id = this.getAttribute("id");
}

但我得到了这个输出:

  

Window#

     

TypeError:this.getAttribute不是函数

当只使用没有参数的popup()时,整个过程都有效。但我需要这个参数。使用参数时为什么不能访问'this'?

谢谢!

1 个答案:

答案 0 :(得分:1)

以下是使用bind

的工作示例
popupTriggerItems[i].addEventListener('click', function(){
  popup.bind(this,'left')();
}, false);

var popup = function(which) {
    console.log(this);
    var id = this.getAttribute("id");
}
  

bind()方法创建一个新函数,在调用时,将其this关键字设置为提供的值,并在调用新函数时提供任何前面提供的给定参数序列。

您可以在MDN上找到有关此内容的更多信息。