Javascript 和 JQuery Dom 全局变量作用域

标签 javascript jquery

我对代码中变量的范围有疑问

var ButtonPressed; //global SCOPE
$(document).ready(function()
{

  function messageAlert()
  {
    $('#buttons').append('<input type="button" id="btn" value="Clickme" />');
    return false;
  }

  messageAlert();

  $('#btn').on("click", function()
  {
    ButtonPressed = 1;
  });
}); //end document

//// UNDEFINED NOT WORKING
if (ButtonPressed === 1)
{
  alert(ButtonPressed);
}

我尝试了有关范围教程的所有内容,但无法显示变量 ButtonPressed=1 GLOBAL。

有什么帮助吗?

最佳答案

您将点击事件绑定(bind)到按钮#btn,以设置全局变量ButtonPressed,除非您单击该按钮,否则该变量不会被触发。

当您的代码执行并到达 block (位于全局范围内)时,知道该按钮尚未被单击

if (ButtonPressed === 1)
{
  alert(ButtonPressed);
}

变量 ButtonPressed 将不会被设置,因为您尚未单击该按钮,因此它不会提醒任何消息。

换句话说,if 语句在点击处理程序之前运行

关于Javascript 和 JQuery Dom 全局变量作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36082597/

相关文章:

javascript - 如果用户使用 Promise,我该如何处理 "check"?

javascript - 如何使用 jQuery 获取、操作和替换文本节点?

javascript - Jquery 动态变量名(由字符串和数字组成)

javascript - 如果多个动画完成,如何从函数返回

jquery - 如何修复背景不透明度 css

javascript - 使用 Angular 保存 Corovas 暂停上的应用程序状态

javascript - 克隆 DOM 中的元素并更改属性,同时在 javascript 中重用它

javascript - 如何更改日期格式

php - 奇怪的sql和javascript ajax错误

javascript - Jquery:同时绑定(bind)加载+更改