我使用jQuery创建了一个“控件”,并使用jQuery.extend来帮助使其尽可能地面向对象。在控件初始化期间,我连接了各种单击事件,如下所示jQuery('#available input', this.controlDiv).bind('click', this, this.availableCategoryClick);注意,我正在将“ this”作为bind方法中的数据参数。我这样做是为了获得附加到控件实例的数据,而不是从激发click事件的元素中获取数据。这完美地工作,但是我怀疑有更好的方法我曾经使用过Prototype,但我记得绑定语法使您可以控制事件中'this'的值。jQuery的方式是什么?
3 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
您可以将其jQuery.proxy()与匿名函数一起使用,只是有点尴尬地认为“上下文”是第二个参数。
$("#button").click($.proxy(function () {
//use original 'this'
},this));
UYOU
TA贡献1878条经验 获得超4个赞
我喜欢您的方式,实际上使用了类似的构造:
$('#available_input').bind('click', {self:this}, this.onClick);
以及this.onClick的第一行:
var self = event.data.self;
我喜欢这种方式,因为这样您既可以单击元素(如此),也可以将“ this”对象作为自身,而不必使用闭包。
- 3 回答
- 0 关注
- 484 浏览
添加回答
举报
0/150
提交
取消