在jquery事件中引用javascript对象
Referencing javascript object within jquery event
我有这段代码。
var NotificationsBox={
HideNotificationBox:function()
{
document.getElementById("NotificationBox").style.visibility="hidden";
},
toggleNotificationBox:function()
{
$('#NotificationBox').toggle();
},
SetContainerClick_NotificationHide_Event:function()
{
$('#Container').click(this.HideNotificationBox);
},
SetNotificationBoxClick_NotificationToggleEvent:function()
{
$('#ShowNotification').click(function(){
$(this).html("0");
$(this).css("background-color","#000");
this.toggleNotificationBox(); /// <-- PROBLEM
});
}
};
NotifyBox=Object.create(NotificationsBox);
NotifyBox.HideNotificationBox();
NotifyBox.SetContainerClick_NotificationHide_Event();
NotifyBox.SetNotificationBoxClick_NotificationToggleEvent();
现在你可以看到问题是什么了。这里this
将引用#ShowNotification
,我想在这里引用NotificationBox
,这样我就可以调用函数了。
在绑定click
之前保存对this
的引用,并在click
事件处理程序中使用此引用而不是this
:
SetNotificationBoxClick_NotificationToggleEvent:function()
{
var self = this;
$('#ShowNotification').click(function(){
$(this).html("0");
$(this).css("background-color","#000");
self.toggleNotificationBox(); // <-- self will refer to NotificationsBox
});
}
或者,作为一种选择,使用NotificationsBox.toggleNotificationBox()
,但如果您碰巧更改了变量NotificationsBox
:的名称,这将停止工作
SetNotificationBoxClick_NotificationToggleEvent:function()
{
$('#ShowNotification').click(function(){
$(this).html("0");
$(this).css("background-color","#000");
NotificationsBox.toggleNotificationBox();
});
}
相关文章:
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 循环遍历以数组为值的Javascript对象
- 从ajax请求中获取javascript对象
- 如何从对象的原型方法访问JavaScript对象属性
- 将XML转换为普通的旧JavaScript对象
- 通过引用传递JavaScript对象
- javascript对象操作:根据指定条件选择属性
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 如何在异步函数中使用javascript对象
- 临时Javascript对象
- 如何在ASP中为用户控件添加Javascript对象网
- 使用数组向下搜索Javascript对象
- Rails将JavaScript对象存储到Model的有效方式
- JavaScript对象不是从原型链继承的
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- SetInterval在javascript对象中表现怪异
- Javascript 对象和 this 关键字
- 如何在不知道关键字的情况下访问javascript对象值
- 在 JavaScript 对象中设置要使用的运算符的属性
- 如何搜索JavaScript对象并更改值