我正在使用Facebook API發佈消息在使用jquery .each函數的Facebook頁面列表上。問題是。每個函數都會很快運行並將頁面ID發送到我的ajax函數。並且在ajax請求的響應之前,每個函數都會將下一個頁面id發送到ajax函數,並在最後一個頁面id的隊列中結束facebook api發佈消息。並且發佈消息的數量是隊列中的頁面ID的長度。 例如我在jQuery。每個函數運行結束和顯示後面的ajax響應
<select>
<option>page1 id|AccessToken></option>
<option>page2 id|AccessToken></option>
<option>page3 id|AccessToken></option>
</select>
jQuery的3頁ID。每個功能將所有的pageID阿賈克斯功能和Facebook API後3消息,去年第3頁ID。因爲我在隊列中有三個頁面id,因此facebook api在最後一頁3上發佈了三條消息。
我需要在每個頁面ID上發佈消息,從facebook api發出ajax響應,然後.each函數發送第二個頁面請求到facebook api等等。
我使用了下面的代碼。
Java腳本代碼
function submitPost()}{
$('#users input:checkbox').each(function() {
var a = (this.checked ? $(this).val() : "");
if (a != ""){
postToPage(a) // a = PageId|AccessToken <option>PageId|AccessToken</option>
}
});
}
function postToPage(c) {
dataSeprator = c.split("|");
d = dataSeprator[0];
my_message = $('#txtmsg').val();
url = $('#txturl').val();
title = $('#txttitle').val();
desc = $('#txtdesc').val();
picUrl = 'facebook.png';
FB.api('/' + d, { fields: 'access_token'}, function (b) {
if (dataSeprator[1].length > 0) {
FB.api('/' + d + '/feed', 'post', {
message: my_message,
link: url,
name: title,
picture: picUrl,
description: desc,
access_token: dataSeprator[1]
}, function (a) {
if (!a || a.error) {
alert('Error occured')
} else {
alert('Message Posted Successfully.')
}
})
}
})
}
owsum解決方案。這就是我需要的。謝謝 –