我正在尝试创建一个javascript类,并在加载时实例化它的某些对象。该类包含一些函数和一些事件侦听器。
function Rating (id)
{
this.id = id;
$(id).click(function()
{
alert('click '+ this.id);
this.debug();
});
this.debug = function()
{
alert(' debug');
}
}
我的目标是从事件侦听器(在本例中为debug
Click侦听器)中调用类函数。不幸的是,当我单击对象时,我只会看到事件监听器警报,而看不到调试警报(fiddle)。
我知道这是一个基本问题。但是我找到的所有答案都说明了将类创建为变量而不是函数。我之所以采用这种方式,是因为我的目标是在同一页面中创建该类的多个实例。有没有一种方法可以使用“变量类”实例化多个对象并从对象中调用内部函数?提前致谢。
经典的事件处理程序中的上下文是window
。
最简单的解决方案是在封闭范围内声明一个变量,以存储所需的值:
function Rating (id)
{
var r = this;
this.id = id;
$(id).click(function() {
alert('click '+ r.id);
r.debug();
});
this.debug = function()
{
alert(' debug');
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句