javascript - 将运行时参数值发送到 jQuery 的 ON 方法?

标签 javascript jquery

我有一个简单的按钮。我需要在单击时将数据发送到处理程序。

所以我有这个代码使用 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

JSBIN

最佳答案

一种简单的方法是使用对象文字。您可以将其作为事件数据传递并保留稍后修改的引用:

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/

相关文章:

javascript - 浏览器加载 html 页面时出现脚本错误

javascript - 将 flot 与 NPM、React 和 Node 结合使用

javascript - 为什么我们不能在 jquery 中按值获取对象

javascript - jQuery使用哪些工具来压缩其源代码

javascript - 将 Javascript 动态应用到 slick.js Slider 中的视频

javascript - 将变量发送到另一个 php 文件

javascript - Ember 使用 this.render 将数据传递到模板时出现问题

javascript - Div 一次出现而不是单独出现

javascript - 如何检测手机浏览器的屏幕尺寸?

javascript - JQuery Ajax 自动完成不显示结果