Javascript & # 39;这个# 39;上下文使用jQuery
Javascript 'this' context with jQuery
我有一个对象ChatHandler
,它拥有一个div,并且它的div包含一些其他dom元素。然后将事件处理程序绑定到其中包含的DOM元素的某个子集,如下所示:
$(this.element).find('.render-box').unbind('click').click(this.handleBoxClick);
,我指定了一些函数来处理这些点击。
ChatHandler.prototype.handleBoxClick = function(event) {
// 'this' refers to a DOM object.
var partner = $(this).attr('partnerid');
// But now I want to be able to access a public attribute of this object.
this.myAttribute = partner;
}
如何访问ChatHandler对象的公共成员/函数?我假设我不能改变执行上下文,但一定有一些方法可以做到这一点,我错过了。
使用$.proxy
绑定this
值
$(this.element).find('.render-box')
.unbind('click')
.click($.proxy(this, "handleBoxClick"));
或者如果您需要在处理程序中保留默认的this
值,您可以将您的对象作为事件数据传递。
$(this.element).find('.render-box')
.unbind('click')
.click(this, this.handleBoxClick);
然后在处理程序中通过event.data
访问它。
ChatHandler.prototype.handleBoxClick = function(event) {
var partner = $(this).attr('partnerid');
event.data.myAttribute = partner;
}
通过一个知道ChatHandler对象的包装器函数显式传递元素。
this
将引用该对象,并且该元素仍然可以作为参数使用。
var handler = this;
$(this.element).find('.render-box').unbind('click')
.click(
function(event) {
handler.handleBoxClick(this, event);
}
);
// ...
ChatHandler.prototype.handleBoxClick = function(el, event) {
var partner = $(el).attr('partnerid');
this.myAttribute = partner;
};
放弃原型,我将删除任何this
关键字-它将变得混乱:
ChatHandler = function() {
var self = this;
self.element = document.getElementById("wtv");
self.myAttribute = undefined;
self.handleBoxClick = function() {
var partner = $(self.element).attr('partnerid');
self.myAttribute = partner;
}
$(self.element).find('.render-box').unbind('click').click(self.handleBoxClick);
};
new ChatHandler();
相关文章:
- 使用JQuery的动态上下文菜单
- JQuery在单击正文时隐藏上下文菜单
- JQuery上下文菜单显示/隐藏问题
- 如何使用jQuery上下文参数
- 动态上下文菜单不显示在jQuery中
- 保留此内容并保留 jQuery 上下文
- jQuery Waypoints 上下文在 Safari 或 Chrome 中不起作用
- jQuery移动触摸事件处理,此关键字上下文,并正确使用闭包
- 从 Jquery 上下文菜单项的下拉列表中获取所选值,选择更改事件
- 为所有查询设置jquery上下文
- JavaScript强制事件激发(Twitter API)(JQuery上下文菜单)
- jQuery上下文菜单中的AJAX加载的内容
- 如何通过选择器仅选择缓存的jQuery上下文的直接子体
- 在Jquery上下文菜单中,我如何识别右键单击的元素是否正确?
- jQuery -上下文菜单'元素
- jQuery上下文选择器差异
- jQuery -上下文菜单-解除绑定
- jQuery上下文菜单在osx
- Jquery上下文未从ajax请求返回现有元素
- jquery上下文菜单插件