javascript - jQuery - setInterval 与 $.each

标签 javascript jquery

我正要把我的头发扯下来。我正在尝试与我的 PHP 函数交互,该函数正在测量一些时间:timeSince() 已发布帖子。

我不需要在 jQuery 中执行此操作的插件,谢谢 :o)

但我不想在所有 .post-box-time div 上运行 $.get() 所以我使用 $.each。但它只更新最后一个元素,但给我其他 div 的结果。 -> 好像它没有执行 $.each()..

这是我的代码:

setInterval(function() {
        $('.post-box-time').each(function() {
            var time = $(this).attr('data-time');
            $this = $(this);

            $.get("sys/calls.handler.php", { do: 'timeSince', data: time },
                function(data){
                    $this.html(data);
                });
        }); // each function
    }, 1000);

最佳答案

那么你应该在声明 $this 之前抛出一个 var

您将其声明为全局变量,而不是在 each() 运行的每个函数的作用域内声明它(这是 var 所做的)。所以当您的响应回调实际上是被解雇时,您的循环已经完成并将全局变量 $this(或 window.$this)设置为它找到的最后一个 .post-box-time 的值通过 each() 循环

关于javascript - jQuery - setInterval 与 $.each,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12097894/

相关文章:

javascript - ComponentDidMount 等不会按顺序触发函数

javascript - 带有谷歌地图和天气图像的网页只能在 IE 中使用,不能在 Chrome 中使用?

javascript - 获取对象名称

JavaScript 最大表格大小

javascript - 在 Jquery 中一行一行地显示?

php - 使用 jQuery POST 发送多个 <select> 元素

javascript - 原始 HTML 样式不同于 jQuery 生成的具有相同结构的 HTML

javascript - 在 for 循环中更新 <div>

javascript - 使用用户 ID 将数据添加到 Firestore

jquery - 基本 jQuery 动画 : Elipsis (three dots sequentially appearing)