Javascript 触发Ajax内部成功
我只想在Ajax成功时触发函数 我的函数是ajaxJavascript 触发Ajax内部成功,javascript,jquery,ajax,Javascript,Jquery,Ajax,我只想在Ajax成功时触发函数 我的函数是ajax $.ajax({ type: "POST", url: url, dataType: "json", success: function(msg) { console.dir(msg); if(msg.status == 'OK'){ $("#fb-root").on("facebook:ini
$.ajax({
type: "POST",
url: url,
dataType: "json",
success: function(msg) {
console.dir(msg);
if(msg.status == 'OK'){
$("#fb-root").on("facebook:init", function(event, response) {
if(response.status === 'connected') {
alert("LOG")
}else{
alert(" NO LOG ");
}
});
}
}
});
触发函数
function getLoginStatus() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
$('#fb-root').trigger('facebook:init',[response]);
} else if (response.status === 'not_authorized') {
$('#fb-root').trigger('facebook:init',[response]);
} else {
$('#fb-root').trigger('facebook:init',[response]);
}
});
}
切勿警报(“日志”)
或警报(“无日志”)代码>
如果我使用
$("#fb-root").on("facebook:init", function(event, response) {
if(response.status === 'connected') {
alert("LOG")
}else{
alert(" NO LOG ");
}
});
在ajax之外,它是有效的
谢谢我想你需要这个:
//Move this function outside ajax as this is to register event handler, not to trigger the function.
$("#fb-root").on("facebook:init", function(event, response) {
if(response.status === 'connected') {
alert("LOG")
}else{
alert(" NO LOG ");
}
});
function getLoginStatus() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
$('#fb-root').trigger('facebook:init',[response]);
} else if (response.status === 'not_authorized') {
$('#fb-root').trigger('facebook:init',[response]);
} else {
$('#fb-root').trigger('facebook:init',[response]);
}
});
}
$.ajax({
type: "POST",
url: url,
dataType: "json",
success: function(msg) {
console.dir(msg);
if(msg.status == 'OK'){
getLoginStatus(); //only trigger the function when ajax is successful.
//or $('#fb-root').trigger('facebook:init',msg);
}
}
});
$(“#fb root”)。在(“facebook:init”
是注册事件处理程序,而不是触发事件。您应该始终在$.ajax函数之外添加事件处理程序,并在success函数内部触发它。这是一个很大的代码块。您做了哪些更改?请不要让人们玩这个区别。@Quentin:我在答案中添加了更多的文本和注释。@Barno:对不起,我无法访问您的链接。(“facebook:init”,函数(事件,响应){if(response.status=='connected'){check(response.authResponse.userID,response.authResponse.accessToken,msg.facebook_secret,false)}上的{$(“share_facebook”).prop(“checked”,false);}}}});
@Barno:我不确定是否调用$(“#fb root”).trigger('facebook:init',msg);
内部成功
是您需要的。