我使用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 關注
- 514 瀏覽
添加回答
舉報
0/150
提交
取消