我有一个简单的按钮。我需要在单击时将数据发送到处理程序。
所以我有这个代码使用 ON overload method :
.on( events [, data ], handler(eventObject) )
我创建了这个示例:
var aaa="john";
function greet(event) { alert("Hello "+event.data.name); }
$("button").on("click", { name: aaa}, greet);
setTimeout(function (){aaa="paul"},2000)
但等了 2 秒后,我仍然看到:“Hello John”
所以我假设aaa
值在解释时是有界的。
问题:
如何更改代码,以便在 2 秒后发出警报:Hello Paul
?
最佳答案
一种简单的方法是使用对象文字。您可以将其作为事件数据传递并保留稍后修改的引用:
var greetData = {
name: "john"
};
function greet(event)
{
alert("Hello " + event.data.name);
}
$("button").on("click", greetData, greet);
setTimeout(function() {
greetData.name = "paul";
}, 2000);
您将找到更新的 JS Bin here .
关于javascript - 将运行时参数值发送到 jQuery 的 ON 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18507093/