javascript - 全局变量在 jquery/javascript 中如何工作? (初学者级)

标签 javascript jquery global-variables processing

我基本上想知道全局变量在 javascript/JQuery 环境中如何工作。我最熟悉一种叫做 processing 的语言有人告诉我这是基于java的。我期望 javascript 和 JQuery 中的变量表现得像处理中的变量一样,但它们并不像我期望的那样工作,而且我一生都无法理解它。

我编了一个非常简单的例子来说明我的困惑:

 var what="";

 $(document).ready(function(){
      $("p").click(function () {
           what="p";
           });
      if(what=="p"){
            alert(what);
           }//end if
 });//end doc ready

在处理过程中,这会起作用,因为“what”变量是全局变量,并且当它通过单击段落而更改时,if 语句应该不断检查以查看“what”==“p”,并触发警报。但事实并非如此——“what”似乎只在 click 函数内更新,即使它是一个全局变量,所以当涉及到 if 语句时,“what”仍然等于“”而不是“p” .

如果有人能解释为什么会发生这种情况,我将非常感激!

最佳答案

if 语句仅在 DOM 首次准备就绪时运行一次。它不是连续运行的。如果您希望它在点击处理程序期间运行,那么您可以使用以下代码:

 var what="";

 $(document).ready(function(){
    $("p").click(function () {
       what="p";
       if(what=="p"){
           alert(what);
       }//end if
    });
});//end doc ready

关于javascript - 全局变量在 jquery/javascript 中如何工作? (初学者级),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12136050/

相关文章:

python - 如何使用 JSON 对全局 Python 变量进行编码?

javascript - 有人可以扩展一些常见的 Crossfilter 变量名吗?

javascript - Jquery 'on' 点击 Bootstrap 模式对话框

javascript - 用未知高度的 css 转换替换容器内容

iOS 错误预期 ')'

forms - VBA控件引用(窗体)全局变量?

javascript - 使用 javascript 将任何人的文件上传到我的谷歌驱动器

javascript - 将日期选择器格式转换为输入字段

javascript - 如何为 v-model 添加约束

javascript - 将来自 2 个 AJAX 调用的数据合并到一个数组中?