Надеюсь, это будет простое решение, но я не могу решить его самостоятельно.Борьба с JQuery .each() Функция
Фона Я пытаюсь создать веб-приложение, которое помещает всех своих друзей facebook в JQuery UI автозаполнения и сообщения к их стене, когда вы закончите выбор друзей и нажмите на кнопку/ссылку и т.д.
У меня была эта работа отлично для одного друга, но требования изменились (как всегда), чтобы сделать эту работу для нескольких друзей.
До сих пор у меня есть все, что работает с несколькими друзьями, за исключением случаев, когда дело доходит до фактической публикации на стенах друзей пользователя.
Код
Я буду стараться держать это в коде, имеющих отношение к вопросу, который я считаю, выглядит следующим образом:
У меня есть скрытые поля ввода, которым я управляю заселить с идентификаторами:
<input id="fbid" type="hidden" value="12345, 567890, ">
У меня тогда есть функция jQuery, которая запускается, когда ссылка нажимается, чтобы опубликовать ее в стенах друзей.
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '12345678', // App ID
channelUrl : '/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
oauth : true, // enable OAuth 2.0
xfbml : true // parse XFBML
});
// Additional initialization code here
FB.login(function(response)
{
if (response.authResponse)
{
$("#send-voucher").click(function() {
// Post message to friend's wall
var opts = {
message : 'This is the message',
name : 'This is the name',
link : 'http://www.opticalexpress.co.uk',
description : 'This is the description',
picture : '/voucher_valid.png'
};
var referees = $("#fbid").val();
// remove last comma and space from the end of the string
referees = $.trim(referees);
referees = referees.substring(0, referees.length - 1);
var referee = referees.split(', '); // comma space
referee.each(function() {
FB.api('/'+ referee +'/feed', 'post', opts, function(response)
{
if (!response || response.error)
{
alert('Posting error occured');
}
else
{
alert('Success - Post ID: ' + response.id);
$("#send-voucher").hide();
$("#voucher-sent").fadeIn('slow');
}
});
});
});
}
else
{
alert('Not logged in');
}
}, { scope : 'publish_stream' });
};
Ошибка сообщает поджигатель является referee.each is not a function
Если вам потребуется дополнительная информация, пожалуйста, дайте мне знать.
ах ... спасибо. Новая ошибка, которая, как представляется, связана с частью Facebook. Благодаря! – martincarlin87
Не забудьте указать свой вопрос как ответ @ martincarlin87;) – nyson
@nyson - пришлось ждать 8 минут;) Спасибо всем, кто ответил. Ошибка теперь кажется, что строка на самом деле не разделена ... она пытается отправить сообщение в '12345, 567890' дважды вместо' 12345', затем '567890' ...... – martincarlin87