Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问jquery.ready()之外的变量_Javascript_Jquery_Scope - Fatal编程技术网

Javascript 访问jquery.ready()之外的变量

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

这是非常令人沮丧,所以我希望有人能够帮助。我不是一个优秀的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>

fooey=‘baaa’;
jQuery(文档).ready(函数($){
fooey=‘新值’;
});
警报(“值:“+fooey”);//我需要这是“新价值”

如何在JQuery块内部更改fooey变量,然后从JQuery块外部访问这个新值。因此,我希望警报弹出窗口显示“新值”而不是“baaa”

您的代码可以工作,但它按以下顺序运行:

  • fooey=‘baaa’

  • 设置jQuery(文档).ready

  • 警报(“值:“+fooey”)

  • 运行jQuery(文档)。准备好了吗

  • 这是因为JavaScript是在
    文档
    准备就绪之前运行的(并且jQuery事件会触发)。因此,如果在
    文档
    准备就绪之前使用
    fooey
    ,则应将其设置为
    “新值”
    。如果需要在DOM就绪时使用它,请在
    $(document.ready
    函数末尾使用它

    解释

    加载网页时,页面中的JavaScript将运行。这将通过代码(设置并警告
    fooey
    的值),设置任何事件,如
    .onclick
    窗口.onresize
    $(document).ready()
    ,这些事件稍后在特定事件发生时调用。对于
    $(document).ready()
    它发生在DOM(文档对象模型)准备好处理时

    发件人:

    在完全接收到所有资产(如图像)之前,不会触发此事件


    您的代码可以工作,但它按以下顺序运行:

  • fooey=‘baaa’

  • 设置jQuery(文档).ready

  • 警报(“值:“+fooey”)

  • 运行jQuery(文档)。准备好了吗

  • 这是因为JavaScript是在
    文档
    准备就绪之前运行的(并且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