在带有回调的Javascript类中调用jQuery的问题
问题描述:
我正在使用JavaScript,jQuery和JSONP进行异步跨域WCF服务调用。我已经成功地完成了此功能,所以我知道我遇到的问题不在服务方面。在带有回调的Javascript类中调用jQuery的问题
我有我的测试客户端站点设置为使用getJSON方法内联jQuery调用,它工作正常。然而,我然后试图把jQuery调用放到一个JavaScript类中。现在我无法使回调触发。
也能正常工作(在工作示例的功能在脚本标记添加的网页本身):
function handleResponse(result) {
if (result.Success) {
// do something
}
else {
// do something else
}
}
function validate(serviceURL, data) {
$.getJSON(serviceURL + "/Validate?data=" + data + "&callbackHandler=?", handleResponse);
}
当我试图创建一个类在单独的.js来包装这些功能包括文件,回调不会触发。下面是从.js文件类代码包括文件:
function serviceProxy(myServiceURL) {
this.serviceURL = myServiceURL;
this.validate = function(data, successCallback, failureCallback) {
$.getJSON(this.serviceURL + "/Validate?data=" + data + "&callbackHandler=?", function(result) {
if (result.Success) {
successCallback();
}
else {
failureCallback(result.ErrorMessage);
}
});
};
这里是形式,它在脚本中的JavaScript直接标记的网页上打的电话:
function handleSuccess() {
// do something
}
function handleFailure(message) {
// do something else
}
function validate(serviceURL, data) {
var proxy = new serviceProxy(serviceURL);
proxy.validate(data, handleSuccess, handleFailure);
}
调试时的getJSON调用被执行,但handleSuccess和handleFailure回调永远不会到达。任何建议将不胜感激。
由于提前,
本
答
你试过更换:
if (result.Success) {
successCallback();
}
有:
if (result.Success) {
successCallback(result);
}
+0
谢谢你的建议,杰里米,但这并没有改变任何事情。 – Ben 2011-03-02 18:31:58
你有没有尝试把一个断点在的getJSON回调,看看你是否曾经到过“if(result.Success){”line? – jordancpaul 2011-03-02 18:34:48
我不确定是否在该行上放置断点实际上是否会触发,因为该函数被定义为另一个函数调用的参数,但是我确实确认了if(result.Success)行上的断点未触发。 – Ben 2011-03-05 04:20:10