我基本上想知道全局变量在 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/