如何为全局变量赋值,并在jquery/javascript中的其他函数中使用它

How to Assign value to global variable and use it in other functions in jquery/javascript?

本文关键字:其他 函数 javascript 全局变量 赋值 jquery 并在      更新时间:2023-09-26

声明全局变量(jquery):

 $.mynamespace = {  myVar : "something" }; 

我将对xml进行一些操作,然后将一些其他值分配给myVar,并调用函数test()将再次更改myVar的值。然后我希望var的值必须与我在test()函数中更改的值相同。

    $(document).ready(function(){
        //Some XML oprations
        $.get("students.xml",{},function(xml){
            $.mynamespace.myVar="ewewewewewew";
            test();
        });
        //value of $.mynamespace.myVar must be test
        alert($.mynamespace.myVar);
     });
     function test(){
        alert($.mynamespace.myVar );
         $.mynamespace.myVar="test";
     }

Ajax代表异步JavaScript和XML,这意味着调用是异步的。AJAX完成后,将调用成功的函数。它可以随时调用。因此,当javascript到达代码时,它就完成了,当ajax准备就绪时,就会调用成功函数。

有两种解决方案。

  1. 当ajax请求在successful函数中完成时,您可以使用变量执行某些操作
  2. 您可以在ajax代码后面使用变量,但需要使用参数async: false,这使得ajax没有ajax:)但使用某种SJAX

您可以使用闭包而不是全局变量来做同样的事情

(function($){
  var myNs = {};
  $(document).ready(function(){ 
    //Some XML oprations
    $.get("students.xml",{async: false},function(xml){
        myNs.myVar="ewewewewewew";
        test();
    });
        //value of $.mynamespace.myVar must be test
        alert(myNs.myVar);
  });
     function test(){
        alert(myNs.myVar );
         myNs.myVar="test";
     }
})(jQuery);