我正在编写一个jQuery插件,并且以一种非jquery-community-standard的方式编写它,主要是
保持可移植性和可扩展性.
从原型访问时,访问函数中声明的变量时遇到麻烦.
也许我的模型非常错误,但是我希望有人可以指出实现我的目标的正确方法,那就是创建同一类的多个实例.
当我尝试关闭窗口时出现我的问题,出现“ this.auga is undefined”错误.当我创建关闭按钮时(在build window方法内部),我附加了click事件.click(this.hide)-这是函数原型中的另一种方法.我的.resize事件也不起作用,因为方法.centerauga使用了我的this.win属性.获取this.win是未定义的错误.
为什么.show方法具有定义的this.auga,而.hide方法仍未定义?我知道我正在从实例本身访问.show方法-但是为什么其他方法也不能访问该实例?
这不是“请做这项工作”.我正在编写此插件以更加熟悉JavaScript.所以,如果有人有任何见识,请-我都很高兴.
这是示例的链接:
http://jsfiddle.net/G26aM/16/
解决方法:
在jQuery回调中,即使回调函数位于对象中,“ this”变量也将指向创建事件的元素.
要在对象开始时解决此问题,请执行以下操作:
var self = this;
然后,每当要引用对象时,请使用“ self”而不是“ this”.