【发布时间】:2014-05-07 14:01:31
【问题描述】:
我有一个 JS 对象在伪代码中这样做:
function myObj {
// in constructor
... initialise vars
... call $.Ajax to fetch view from server
function AjaxCallBack() {
// load the DOM with the HTML result
$('#dialog').html(ajax.result);
// try to register a change handler
$("#dialog :input").change(this.formChangeEvent);
}
this.formChangeEvent = function(){
... do stuff
}
}
问题是在AjaxCallBack中,'this'不是myObj对象,而是'window'对象,无法解析函数
我能够解决这个问题的唯一方法是让对象的接收者回调到 myObj 的单独函数并注册事件
objInstance = new myObj();
objInstance.registerEventHandler();
我已经尝试了一些其他的东西,但我显然缺少一些基本的东西。
【问题讨论】:
-
当您遇到实际脚本问题时,为什么要发布伪代码(包括语法错误)?
-
您能否发布一些有关如何调用 ajaxCallback 的信息,因为这就是神奇之处:)
-
发布脚本中的所有内容
-
第 1 课 - 更有效地使用 google 第 2 课 - 我不应该在函数定义 formChangeEvent 前加上“this”。该语法使函数能够被公开访问。通过从声明中删除“this”,我可以将函数设为私有,并且无需使用 this 或 that 即可解析。
标签: javascript jquery