Теперь вот забавная проблема. У меня есть массив объектов, как:JavaScript: передача параметров изменения в обратный вызов
objRequests = [
{
url: "/cgi-bin/script1.cgi",
dest: "#div1"
},
{
url: "/cgi-bin/script1.cgi",
dest: "#div2"
}
];
Теперь я перебирать эти объекты, чтобы загрузить информацию с сервера на конкретных адресов с помощью JQuery в $ .getJSON() и после некоторой фантазии коверкая через функцию обратного вызова , нужно поместить HTML в div, идентификатор которого указан через «dest».
Обычно, если мне нужно указать дополнительные данные для входа в обратный вызов, я бы использовал анонимную функцию, и это работает нормально. Проблема здесь в том, что указатель на переменную для адресата, похоже, остается прежним, поэтому при каждом обратном вызове адресат всегда равен «# div2».
Я попытался следующие:
for (var loop = 0; loop < objRequest.length; loop++)
{
var exec = new function(objResponse)
{
processResponse(objResponse, objRequest[loop].dest);
}
exec.dest == objRequest[loop].dest;
$.getJSON(objConfig.strTicketScript, exec);
}
, а также
for (var loop = 0; loop < objRequest.length; loop++)
{
var destination = objRequest[loop].dest;
var exec = new function(objResponse)
{
processResponse(objResponse, destination);
}
exec.dest == objRequest[loop].dest;
$.getJSON(objConfig.strTicketScript, exec);
}
, но по какой-то причине Firefox до сих пор, кажется, не создавать отдельные данные в анонимной функции. Есть ли способ получить уникальную ссылку на данные на каждой итерации?
посмотреть все вопросы, связанные с - [JavaScript + закупорки + петли] (http://stackoverflow.com/questions/tagged/javascript+closures+loops) – Anurag
Очень хороший ответ можно найти здесь: http://stackoverflow.com/questions/1552941/variables-in-anonymous-functions-can-someone-explain-the-following – Shog9
Обе отличные ссылки. Спасибо за информацию. У меня были проблемы с поиском, так как я не знал, что искать: S – RandomInsano