Я не уверен в лучшей практике для изменения DOM на основе ответа ajax. Я постараюсь позволить коду говорить, потому что это трудно объяснить.Изменение DOM на основе результата AJAX с помощью jQuery
// page has multiple checkboxes
$("input[type='checkbox']").live('click', function {
var cb = $(this); // for the sake of discussion i need this variable to be in scope
$("form").ajaxSubmit({ dataType: "script" });
}
Сервер отправляет ответ обратно, и JS получает Эвальд и это означает, что «Си-Би» выходит за рамки.
Что я сделал до сих пор создать несколько вспомогательных функций:
var target = undefined;
function setTarget(val) {
target = val;
}
function getTarget() {
return target;
}
И что превращает первый фрагмент кода в этом:
// page has multiple checkboxes
$("input[type='checkbox']").live('click', function {
setTarget($(this));
$("form").ajaxSubmit({ dataType: "script" });
}
Затем на ответ сервера I вызовите getTarget, где мне нужно. Это кажется хакерским ... Любые предложения?
Если опция DATATYPE является сценарий, то ответ получает Эвальд глобально (функция globalEval в JQuery) - нет необходимости в обработчик успеха. – user140550
Что делает ваш возвращенный скрипт? всегда полезно избегать отправки сценариев, чтобы их можно было избежать, если их можно избежать ... В противном случае вы могли бы предоставить вашей переменной хранилища глобальную область действия, хотя тогда вы рискуете проблемами параллелизма. –
, так что сервер должен возвращать html-фрагмент, даже если запрос для javascript? – user140550