我在代码中变量的范围有问题

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。

有什么帮助吗?

最佳答案

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

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

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


变量ButtonPressed不会被设置,因为您还没有单击按钮,因此不会警告任何消息。

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

10-06 11:56