访问jquery.ready()之外的变量
Accessing a variable outside of jquery.ready()
这变得非常令人沮丧,所以我希望有人能帮忙。我不是一个优秀的JavaScript或JQuery开发人员(更多的是后端人员(,但我到处寻找解决方案,似乎没有任何帮助。这是我问题的简化版本。。。
<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>
如何更改JQuery块内部的fooey变量,然后从JQuery块外部访问这个新值。因此,我希望弹出的警报显示"新值",而不是"baaa"。
您的代码可以工作,但它按以下顺序运行:
-
fooey="baaa";
-
设置jQuery(文档(.ready
-
alert("value:"+fooey(;
-
运行jQuery(文档(.ready
之所以会发生这种情况,是因为JavaScript在document
准备就绪之前运行(并且jQuery事件触发(。因此,如果在document
准备就绪之前使用fooey
,则应将其设置为'New value'
。如果您需要在DOM就绪时使用它,请在$(document).ready
函数结束时使用它。
解释
加载网页后,会运行页面中的JavaScript。这将通过代码(设置和警告fooey
的值(,设置任何事件,如.onclick
、window.onresize
或$(document).ready()
,这些事件将在以后特定事件发生时调用。对于$(document).ready()
,它发生在DOM(文档对象模型(准备好进行操作时
从jQuery API ready((:
直到完全接收到诸如图像之类的所有资产,才触发该事件。
在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>
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);
}
HTML代码:
<input type="button" id="b1" value="b1" onclick="fun()" >
<input type="button" id="b2" value="b2" onclick="fun2()">
这里foo变成a global variable
,page loading
上的foo
的值是val1
。
如果单击按钮b1
,则其值将变为val2
。您可以通过单击按钮b2
来检查此值。
ready子句的全部目的是等待文档完全就绪后再执行任何操作。通过在该事件之外添加代码,它将(可能(在就绪事件之前加载。
<script language="JavaScript" type="text/javascript">
// executed when browser interprets this line
fooey = 'baaa'; // (1st to be executed)
jQuery(document).ready(function($) {
// executed after few seconds , when DOM is ready. (3rd one to be executed)
fooey = 'New value';
});
// executed when browser interprets this line (2nd one to be executed)
alert("value: " + fooey);
</script>
最后一个fooey值是New value
,但当您提醒它时不是
您可以像这样等待DOM准备就绪。
<script language="JavaScript" type="text/javascript">
fooey = 'baaa';
jQuery(document).ready(function($) {
fooey = 'New value';
});
var interval = setInterval(function () {
if ( jQuery.isReady ) {
clearInterval(interval);
alert("value: " + fooey);
}
},10)
</script>
- 值未传递给变量(JQuery、Javascript)
- 附加要使用的变量jQuery验证插件
- 按钮变量范围 - 如何更新父范围中的变量?jQuery.
- grunt-contrib-jasmine ReferenceError: 找不到变量: jQuery.
- 未定义的变量 jQuery 对象
- 调用变量 jQuery 函数
- 访问正在改变函数内部的变量(jQuery)
- 在变量jquery日期选择器中获取今天的日期和所选日期
- 如何序列化存储在变量 jQuery 中的表单
- 如何在单独的函数中获取此变量?(jQuery)
- 可以't在嵌套函数中使用javascript变量(jquery砖石插件)
- 将.attr()添加到变量Jquery中
- 将.change函数中变量的值传递并更新到全局变量Jquery
- 将ajax变量Jquery到php中
- 用两个双引号和加号包围javascript变量jquery $.post
- 如何将html结构存储在变量jquery中
- 如何通过名称空间变量进入点击函数参数变量?jQuery
- 检查if条件,if语句被赋值为字符串变量- jquery|| javascript
- 从on()函数返回变量- jquery
- 创建一个变量,在每个循环中使用一个变量- jQuery