我正要把我的头发扯下来。我正在尝试与我的 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/