您好我有以下代码:
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'?
谢谢!
答案 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上找到有关此内容的更多信息。