Javascript 访问jquery.ready()之外的变量
这是非常令人沮丧,所以我希望有人能够帮助。我不是一个优秀的JavaScript或JQuery开发人员(更多的是后端开发人员),但我到处寻找解决方案,似乎没有任何帮助。这是我问题的简化版本Javascript 访问jquery.ready()之外的变量,javascript,jquery,scope,Javascript,Jquery,Scope,这是非常令人沮丧,所以我希望有人能够帮助。我不是一个优秀的JavaScript或JQuery开发人员(更多的是后端开发人员),但我到处寻找解决方案,似乎没有任何帮助。这是我问题的简化版本 <script language="JavaScript" type="text/javascript"> fooey = 'baaa'; jQuery(document).ready(function($) { fooey = 'New value'; }); alert("va
<script language="JavaScript" type="text/javascript">
fooey = 'baaa';
jQuery(document).ready(function($) {
fooey = 'New value';
});
alert("value: " + fooey); // I need this to be 'New value'
</script>
fooey=‘baaa’;
jQuery(文档).ready(函数($){
fooey=‘新值’;
});
警报(“值:“+fooey”);//我需要这是“新价值”
如何在JQuery块内部更改fooey变量,然后从JQuery块外部访问这个新值。因此,我希望警报弹出窗口显示“新值”而不是“baaa” 您的代码可以工作,但它按以下顺序运行:
文档
准备就绪之前运行的(并且jQuery事件会触发)。因此,如果在文档
准备就绪之前使用fooey
,则应将其设置为“新值”
。如果需要在DOM就绪时使用它,请在$(document.ready
函数末尾使用它
解释
加载网页时,页面中的JavaScript将运行。这将通过代码(设置并警告fooey
的值),设置任何事件,如.onclick
、窗口.onresize
或$(document).ready()
,这些事件稍后在特定事件发生时调用。对于$(document).ready()
它发生在DOM(文档对象模型)准备好处理时
发件人:
在完全接收到所有资产(如图像)之前,不会触发此事件
您的代码可以工作,但它按以下顺序运行:
文档
准备就绪之前运行的(并且jQuery事件会触发)。因此,如果在文档
准备就绪之前使用fooey
,则应将其设置为“新值”
。如果需要在DOM就绪时使用它,请在$(document.ready
函数末尾使用它
解释
加载网页时,页面中的JavaScript将运行。这将通过代码(设置并警告fooey
的值),设置任何事件,如.onclick
、窗口.onresize
或$(document).ready()
,这些事件稍后在特定事件发生时调用。对于$(document).ready()
它发生在DOM(文档对象模型)准备好处理时
发件人:
在完全接收到所有资产(如图像)之前,不会触发此事件
在ready函数中定义警报,原因是在document.ready函数之前执行警报
<script language="JavaScript" type="text/javascript">
fooey = 'baaa';
jQuery(document).ready(function($) {
fooey = 'New value';
alert("value: " + fooey); // I need this to be 'New value'
});
</script>
fooey=‘baaa’;
jQuery(文档).ready(函数($){
fooey=‘新值’;
警报(“值:”+fooey);//我需要将其设置为“新值”
});
在ready函数中定义警报,原因是在document.ready函数之前执行警报
<script language="JavaScript" type="text/javascript">
fooey = 'baaa';
jQuery(document).ready(function($) {
fooey = 'New value';
alert("value: " + fooey); // I need this to be 'New value'
});
</script>
fooey=‘baaa’;
jQuery(文档).ready(函数($){
fooey=‘新值’;
警报(“值:”+fooey);//我需要将其设置为“新值”
});
ready子句的全部要点是等待文档完全就绪后再执行任何操作。通过在该事件之外添加代码,它将在ready事件之前加载(可能)。ready子句的全部要点是等待文档完全就绪后再执行任何操作。通过在该事件之外添加代码,它将(可能)在就绪事件之前加载。javascript:
var foo;
$(function() {
// this is your jquery.ready() function. I have write it in another way
foo = 'val1'
alert(foo);
});
function fun(){
foo = 'val2';
alert(foo);
}
function fun2(){
alert(foo);
}
<input type="button" id="b1" value="b1" onclick="fun()" >
<input type="button" id="b2" value="b2" onclick="fun2()">
HTML代码:
var foo;
$(function() {
// this is your jquery.ready() function. I have write it in another way
foo = 'val1'
alert(foo);
});
function fun(){
foo = 'val2';
alert(foo);
}
function fun2(){
alert(foo);
}
<input type="button" id="b1" value="b1" onclick="fun()" >
<input type="button" id="b2" value="b2" onclick="fun2()">
现在,foo变成了一个全局变量
,而页面加载
上的foo
的值是val1
如果单击按钮
b1
,则其值变为val2
。您可以通过单击按钮b2
javascript来检查此值:
var foo;
$(function() {
// this is your jquery.ready() function. I have write it in another way
foo = 'val1'
alert(foo);
});
function fun(){
foo = 'val2';
alert(foo);
}
function fun2(){
alert(foo);
}
<input type="button" id="b1" value="b1" onclick="fun()" >
<input type="button" id="b2" value="b2" onclick="fun2()">
HTML代码:
var foo;
$(function() {
// this is your jquery.ready() function. I have write it in another way
foo = 'val1'
alert(foo);
});
function fun(){
foo = 'val2';
alert(foo);
}
function fun2(){
alert(foo);
}
<input type="button" id="b1" value="b1" onclick="fun()" >
<input type="button" id="b2" value="b2" onclick="fun2()">
现在,foo变成了一个全局变量
,而页面加载
上的foo
的值是val1
如果单击按钮
b1
,则其值变为val2
。您可以通过单击按钮b2
来检查此值。是否可以在jquery ready函数中包含警报?您的代码是正确的,但这里发生的是您的警报在document.ready函数之前执行。如果您在控制台中检查fooey值,它应该是“New value”,在两行之间读取,您可能认为与jQuery相关的所有内容都必须在document.ready块中,但事实并非如此(如果您确实需要它,没有理由不在其外部使用“normal”JavaScript。)window.fooey是“New value”,问题是加载到浏览器的文档延迟。。请在文档准备就绪之前调用您的函数!尝试body onload,并在脚本标记函数getNewValue(){alert(“value:+fooey);}中包含alert,可以在jquery ready函数中包含吗?您的代码是正确的,但这里发生的是在document.ready函数之前执行您的警报。如果您在控制台中检查fooey值,它应该是“新值”,在两行之间读取,您可能认为jQuery相关的所有内容都必须在document.ready块中,但事实并非如此(如果您确实需要它,则没有理由不在其外部使用“普通”JavaScript。)window.foo