为了账号安全,请及时绑定邮箱和手机立即绑定

在jQuery事件中控制“ this”的值

在jQuery事件中控制“ this”的值

四季花海 2019-11-29 10:57:19
我使用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));


查看完整回答
反对 回复 2019-11-29
?
UYOU

TA贡献1878条经验 获得超4个赞

我喜欢您的方式,实际上使用了类似的构造:


$('#available_input').bind('click', {self:this}, this.onClick);

以及this.onClick的第一行:


var self = event.data.self;

我喜欢这种方式,因为这样您既可以单击元素(如此),也可以将“ this”对象作为自身,而不必使用闭包。


查看完整回答
反对 回复 2019-11-29
  • 3 回答
  • 0 关注
  • 457 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信