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

我使用jQuery创建了一个“控件”,并使用jQuery.extend来帮助使其尽可能地面向对象。


在控件初始化期间,我连接了各种单击事件,如下所示


jQuery('#available input', 

            this.controlDiv).bind('click', this, this.availableCategoryClick);

注意,我正在将“ this”作为bind方法中的数据参数。我这样做是为了获得附加到控件实例的数据,而不是从激发click事件的元素中获取数据。


这完美地工作,但是我怀疑有更好的方法


我曾经使用过Prototype,但我记得绑定语法使您可以控制事件中'this'的值。


jQuery的方式是什么?


四季花海
浏览 461回答 3
3回答

回首忆惘然

您可以将其jQuery.proxy()与匿名函数一起使用,只是有点尴尬地认为“上下文”是第二个参数。 $("#button").click($.proxy(function () {     //use original 'this' },this));

UYOU

我喜欢您的方式,实际上使用了类似的构造:$('#available_input').bind('click', {self:this}, this.onClick);以及this.onClick的第一行:var self = event.data.self;我喜欢这种方式,因为这样您既可以单击元素(如此),也可以将“ this”对象作为自身,而不必使用闭包。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery