当我用JSON编写函数时,为什么必须将它包含在匿名函数中?
这有效:
$.ajax({
type: 'POST',
url: 'http://www.myurl.com',
data: data,
success: function(data) {
alert(data);
}
});
这不起作用:
$.ajax({
type: 'POST',
url: 'http://www.myurl.com',
data: data,
success: alert(data)
});
由于
答案 0 :(得分:6)
你可以做到这一点。您只是使用错误 syntax
。
success
属性需要函数表达式而不是函数()调用(然后将值返回到success
);
所以
success: myfunction
而不是
success: myfunction()
答案 1 :(得分:3)
简而言之,因为您正在执行 alert()
并尝试将结果分配给success
回调,所以这不会工作(alert()
的结果是undefined
)。但是你可以这样做:
$.ajax({
type: 'POST',
url: 'http://www.myurl.com',
data: data,
success: customFunc //*not* customFunc() which would call it
});
在这种情况下,customFunc
将获得与success
次传递相同的参数,因此它的签名应为:customFunc(data, textStatus, XMLHttpRequest)
,尽管它可以是子集,例如customFunc(data)