jQuery - setInterval with $.each
jQuery - setInterval with $.each
我要扯头发了。我正在尝试与我的PHP函数进行交互,该函数测量一些时间:发布帖子的时间Since()。
我不需要在jQuery中使用插件,谢谢:o)
但我不想在所有的.post-box时间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
)设置为通过each()进行循环时发现的最后一个.post-box时间的值
使用异步选项。这条线索与你的问题有关。
希望这对你有帮助。
我认为每个函数中的这是对原始DOM元素的引用。.each给出了从0开始的索引,因此您应该改为使用$('.post-box-time:eq(' + i + ')')
。
相关文章:
- Fighting with FRP
- issue with FB.Event.subscribe
- jquery.each(第2行)添加背景色
- geolocation-marker.js conflict with markerclusterer.js
- Angular 2.0 with JavaScript or TypeScript?
- 如何使用jQuery each分离字符串中的元素
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- WebComponentsJS with IE10
- 指令的模板必须只有一个根元素:With restrict E&替换true
- {{#each}}内部的Handlebar帮助程序
- timeago.js with datatable and PHP
- jQuery - setInterval with $.each
- 为什么{{#each}}能正常工作,而{{#with}却不能
- jQuery .each usage with ajax 加载的内容
- $(this) toggleClass not working with .each?
- Using $.each() with variable
- JQuery ,each() with UI.sortable()
- JQuery reverse each() with find()
- 无法读取属性'点击'的定义.slideToggle with each()
- jQuery Using .on() with .each()