我使用jQuery創(chuàng)建了一個(gè)“控件”,并使用jQuery.extend來(lái)幫助使其盡可能地面向?qū)ο蟆T诳丶跏蓟陂g,我連接了各種單擊事件,如下所示jQuery('#available input', this.controlDiv).bind('click', this, this.availableCategoryClick);注意,我正在將“ this”作為bind方法中的數(shù)據(jù)參數(shù)。我這樣做是為了獲得附加到控件實(shí)例的數(shù)據(jù),而不是從激發(fā)click事件的元素中獲取數(shù)據(jù)。這完美地工作,但是我懷疑有更好的方法我曾經(jīng)使用過(guò)Prototype,但我記得綁定語(yǔ)法使您可以控制事件中'this'的值。jQuery的方式是什么?
3 回答

回首憶惘然
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
您可以將其jQuery.proxy()與匿名函數(shù)一起使用,只是有點(diǎn)尷尬地認(rèn)為“上下文”是第二個(gè)參數(shù)。
$("#button").click($.proxy(function () {
//use original 'this'
},this));

UYOU
TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊
我喜歡您的方式,實(shí)際上使用了類似的構(gòu)造:
$('#available_input').bind('click', {self:this}, this.onClick);
以及this.onClick的第一行:
var self = event.data.self;
我喜歡這種方式,因?yàn)檫@樣您既可以單擊元素(如此),也可以將“ this”對(duì)象作為自身,而不必使用閉包。
- 3 回答
- 0 關(guān)注
- 504 瀏覽
添加回答
舉報(bào)
0/150
提交
取消