【发布时间】:2009-08-12 02:00:39
【问题描述】:
我不确定根据 ajax 响应修改 DOM 的最佳做法。我会尽量让代码来说话,因为它很难解释。
// 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 被评估,这意味着“cb”超出范围。
到目前为止,我所做的是创建了几个辅助函数:
var target = undefined;
function setTarget(val) {
target = val;
}
function getTarget() {
return target;
}
这会将代码的第一个 sn-p 变成这样:
// page has multiple checkboxes
$("input[type='checkbox']").live('click', function {
setTarget($(this));
$("form").ajaxSubmit({ dataType: "script" });
}
然后在服务器的响应中,我在需要的地方调用 getTarget。这似乎很骇人听闻...有什么建议吗?
【问题讨论】:
标签: javascript jquery ajax dom