javascript问题中的全局变量
Global Variable in javascript issue
我有一个名为allow
的变量,我希望它是全局的,所以任何其他函数都可以使用它。实际情况是,当我从某个函数调用该变量时,它会返回undefined
。
这是我的代码:
var allow = null;
$('#form').submit(function(e) {
error_found = false;
$('#text').click();
console.log(window.allow);
if(window.allow == false) {
alert('מספר הסדר שהוזן הינו בשימוש, נא בחר מספר אחר, או סדר את רשימת הסדר מחדש.');
$("#order").focus();
e.preventDefault();
error_found = true;
}
if($("#fix_rel").val() == "" && !error_found){
alert('נא בחר זמן יחסי או קבוע.');
$("#fix_rel").focus();
e.preventDefault();
}
if($("#fix_rel option:selected").val()=="rel" && !error_found){
if(!$.isNumeric($("#order").val())){
alert('מספר הסדר חייב להיות מספר!');
$("#order").focus();
e.preventDefault();
}
}
});
$('#text').click(function() {
table = $("#table").val();
order = $("#order").val();
$.post('test.php',{table:table,order:order}).done(function(data) {
if(data == "true") {
window.allow = true;
}
if(data == "false") {
window.allow = false;
}
console.log(window.allow);
});
});
在过去的两个小时里,我一直在努力解决这个问题,但到目前为止,我一无所知。
提前感谢!
如果这样做:
var allow = null;
console.log(window.allow);
如果你在控制台中看不到null
,那么唯一可能的解释是你对allow
的定义不是全局变量,因为有某种外部函数(比如$(document).ready()
函数之类的)。
如果这两个语句之间有代码,那么另一种可能性是其他代码正在更改allow
变量的值。
在变量声明前面使用var
时,它会在当前作用域中定义该变量。如果当前作用域是全局的,那么该变量就是全局变量。如果当前作用域在函数内部,则该变量被定义为该函数的局部变量。
你可能可以通过两种方式中的一种来解决你的问题,这取决于你试图实现的目标。
- 您可以在实际的全局范围中声明您的变量,使其成为全局变量
- 您可以用
window.allow = null
为变量it的初始值赋值,而不是以其他方式声明它。这将使它成为全球性的,无论你把这个声明放在哪里 - 您可以将变量设为局部变量,并在使用时仅将其称为
allow
,而不是window.allow
仅使用allow
而不是window.allow
。
类似:
console.log(window);
而不是
console.log(window.allow);
相关文章:
- 将 Ajax 数据分配给全局变量时出现问题
- 局部全局变量问题 - JavaScript
- Javascript全局变量问题
- 制造全局变量的问题
- javascript问题中的全局变量
- 在匿名函数中使用全局变量的 JavaScript 问题
- jQuery - 全局变量的问题
- 夜巡中的全局变量.节点.js的 for 循环中出现问题
- 将模块安装为全局变量时遇到问题 -- /usr/bin/env 不是目录
- 全局变量 VS Web 应用中的本地存储和内存问题
- jQuery在函数AJAX函数内部的全局变量有问题
- 使用事件处理程序(基本Javascript)时出现全局变量问题
- 试图覆盖全局变量时出现jQuery.post()作用域问题
- 如何通过闭包问题来增加全局变量
- JS -访问全局变量问题
- 音频暂停不起作用,全局-局部变量问题
- JavaScript全局变量作用域问题
- 全局变量在按下按钮时没有改变(作用域问题)
- JavaScript全局变量未定义问题
- 数据源查询回调问题(调用顺序,改变全局变量的能力)