我有一个收集 XML 的 ajax 调用,并基于该数据创建了许多 div,我在这些 div 上附加了 click() jquery 侦听器。单击时,我希望这些 div 调用一个函数并将参数传递给该函数。但是,当点击被调用时,参数的值已经改变。这是我为演示问题而构建的 jsfiddle的示例:
$(document).ready(function() {
function x() {
$.ajax({
type: "POST",
url: "/echo/xml/",
dataType: "xml",
data: {
xml: "<the>xml</the>"
},
success: function(xml) {
console.log('success');
$('#test').show();
var text = "CORRECT";
$('#test').click(function() {
insertText(text);
console.log(text);
});
text = "WRONG";
}
});
}
x();
});
function insertText(t) {
$('#test').html(t);
}
我希望文本显示为正确,而不是错误。
我知道这是一个有点复杂的例子,但我正试图在范围和正在发生的事情方面尽可能多地模拟我的实际代码。当click()
基于点击调用函数时, 的值text
已经改变。有没有办法在我创建它时将它的值“烘焙”text
到调用中?click()
我将通过循环创建其中的一些,for
因为它通过 XML 运行,并且不想将所有这些数据挂到变量中以供以后使用。