如何在点击事件中设置全局变量
How to set the global variable in click event?
$(document).ready(function() {
var x = "";
$("#anyElement").click(function() {
x = "test";
alert(x);
});
alert(x);
});
当第一个警报工作时,消息框显示"测试"。当第二个警报工作时,消息框显示" "。
$("#anyElement").click(function() {
// How can i set the x veriable as "test" here
});
我不确定我是否理解你的要求,但是嘿,让我们避免全局,好吗?
也就是说,我建议您尝试这样的方法:
var app = {};
app.x = 'initial value';
app.bindEvents = function() {
$('#anyElement').click(function() {
app.x = 'test';
console.log(app.x);
});
};
app.bindEvents = function() {
app.bind();
};
$(app.init);
在这里,我们的代码只设置了一个全局对象(app
(,避免污染命名空间。代码中的问题是您尝试设置"全局",但x
不是全局变量,而只是一个局部变量。
在此处查看工作 JSFiddle
您遇到的问题是由于程序的流程。变量 x 的声明使 x 成为全局变量,范围限定为 document.ready 函数。
'test' 直到 Click 事件之后才分配给 x 变量,第一个警报实际上是代码中编写的第二个警报,因为没有与警报关联的事件。
代码按预期工作,第一个警报为空,因为尚未调用点击触发器:
小提琴
$(document).ready(function() {
var x = "";
$("#anyElement").click(function() {
x = "test";
alert(x);
});
alert(x);
});
相关文章:
- 在javascript函数中设置全局变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 使用eval()设置全局变量
- Ajax设置全局变量,但外部值消失
- 更新后,父视图未在 Electron 中的
上设置全局变量 - 为什么在定义回调/侦听器函数(异步消息传递,port.on)后没有立即设置全局变量
- 如何在不设置全局变量的情况下确定是否已调用函数
- 在函数内设置全局变量
- jQuery / JS设置全局变量,但卡在传递给AJAX自定义函数
- 在 jsdom 加载的脚本中设置全局变量
- 设置全局变量,但未获得预期结果
- 延迟调用 dojo widget 中的函数,直到设置全局变量
- 如何在Javascript中设置全局变量
- ngresource在成功响应中设置全局变量
- 如何在点击事件中设置全局变量
- 通过future函数循环和设置全局变量
- 尝试用javascript函数设置全局变量
- jQuery Ajax Post -无法使用回调函数设置全局变量
- jQuery load()函数不设置全局变量
- 设置全局变量并在jquery/javascript中访问它