javascript - 在 jQuery 函数之间共享变量

标签 javascript jquery

我想与 setInterval 函数共享名为 str 的变量。它需要构建传递给 php 脚本的整个 url。它适用于 ajax 函数并且 GET 参数传递给 php 脚本,但我在使用 setInterval 函数时遇到了一些问题。我不知道在这两个函数之间共享同一个 str 变量。我在下面附上我的代码:

    $(function () {
    $(document).ready(function () {
        var ultimox;
        var ultimoy;
        $('#list li a').on('click',function() {
      var str = $(this).data('driver');

        $.ajax({

                url: "live-data.php" + str,
                type: 'get',
                success: function(DatosRecuperados) {
                $.each(DatosRecuperados, function(i,o){
//some body of function
                });

                setx(DatosRecuperados[(DatosRecuperados.length)-1].x);
                sety(DatosRecuperados[(DatosRecuperados.length)-1].y);

                $('#container').highcharts({
//this part draws chart

        }});

           });  
    });
          setInterval(function () {
                $.get( "live-data.php?Consultar=1" + str , function( UltimosDatos ) {
//this part draws updated chart
                }
           });}, 1000);


          function getx(){return ultimox;}
          function gety(){return ultimoy;}
          function setx(x){ultimox=x;}
          function sety(y){ultimoy=y;}


}); 

最佳答案

在 JavaScript 中,作用域是指代码的当前上下文。范围可以全局或局部定义。理解 JavaScript 作用域是编写好的 JavaScript 的关键。您需要了解在哪里可以访问变量/函数。

Javascript 作用域可以被认为是函数作用域。您应该采用 setInterval() 函数并将其移动到 $(document).ready(function() { ... }); 中。由于 var str; 在函数 $(document).ready(function() { ... }); 中声明了函数 setInterval现在可以读取 str

除非必要,否则我建议不要污染全局命名空间。我的意思是在 $(document).ready(function() { ... }); 之外没有 var str; 。将变量保留在您需要的位置。

关于javascript - 在 jQuery 函数之间共享变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37511288/

相关文章:

javascript - 编码 UI - C# - ExecuteScript - 计数未正确返回值

javascript - 在 javascript 中获取数据时 Highcharts 显示加载图标

jQuery 验证 : If one input is entered, 其他应该成为强制性的

javascript - 使用 ActiveXObject 在 js 中获取 shell 执行的输出

javascript - getAttribute 未设置

javascript - 在使用 React Hook 的函数组件中声明的函数

javascript - 使用 jQuery 删除链接图像和其他 div ID

javascript - window.load 用于使用 jQuery 进行所有 dom 操作?

javascript - <script> 标签从输出中删除

javascript - 在按钮中使用 math.random 来设置选择选项?