请耐心等待。 js初学者。日Thnx。 我正在玩样板文件 https://github.com/jquery-boilerplate/jquery-boilerplate/blob/master/src/jquery.boilerplate.js
在其中我添加了2个新功能
init: function () {
this.mynewFunction2();
},
mynewFunction1: function (){
console.log('ok');
},
mynewFunction2: function (){
$('.link').click(function(){
this.mynewFunction1();
});
}
您可能已经看到了问题,但问题是如何将mynewFunction1传递给jquery对象? 我确实找到了一些帖子,他们说我需要分配我的新函数才能在jquery对象中调用但我在那里有点丢失。所以如果你有空闲分钟,请你根据我上面的代码发布一个例子。 谢谢!
答案 0 :(得分:2)
mynewFunction2: function (){
var self = this;
$('.link').click(function(){
self.mynewFunction1();
});
}
答案 1 :(得分:1)
新功能会创建一个新范围,从而创建一个新的this
:
mynewFunction2: function (){
$('.link').click(function(){
this.style.color = 'red';
// this inside the event handler is the clicked element
});
}
您可以删除匿名函数并直接传递它:
mynewFunction2: function (){
$('.link').click(this.mynewFunction1);
}
或者如果你必须传递参数:
mynewFunction2: function (){
var that = this; // references the parent object
$('.link').click(function() {
that.mynewFunction1(this); // passes the clicked element
});
}