设置间隔和负载
我认为这是一个基本的jquery问题,但它很烦人。这就是我正在做的:
- 从 jquery 加载 href
class="tab"
列出文件(外部), - 单击 href 并再次从外部文件加载
- setinterval 1000 使用 load() 刷新结果 (2)方法再次
问题是:在刷新期间,名称选择器的值每 1 秒更改一次(因为刷新),我最近单击了 #1 中的 href。
$('a.tab').live('click',function() {
var value = $(this).attr('name');
//....
setInterval(function(){
$("div#timed").load('retriever.php', {"update":value} );
} ,1000);//set interval
//....
$(this).undelegate('click');
});
This is a basic jquery problem I think, but it is very annoying. This is what I am doing:
- load a href
class="tab"
lists file (external) from jquery - click on href and load from external file again
- setinterval 1000 refresh the results (2) with load() method AGAIN
Question is: At refresh period, the value for name selector changes every 1 second (because of refresh), that I recently clicked the hrefs from #1.
$('a.tab').live('click',function() {
var value = $(this).attr('name');
//....
setInterval(function(){
$("div#timed").load('retriever.php', {"update":value} );
} ,1000);//set interval
//....
$(this).undelegate('click');
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为当您开始一个新的间隔计时器时,您想取消其他间隔计时器。
编辑 - 哎呀等一下我正在修复它......好的谢谢@kingjiv!
正如其他人所说,“undelegate()”调用可能没有按照您的想法/想要的进行。
再次编辑——这可以更智能地完成;当然,实际上只需要一个计时器ID存储在主体上。我有时有点慢。
I think that you want to cancel the other interval timers when you start a new one.
edit — oops hold on I'm fixing it ... ok thanks @kingjiv!!
As others have said, that "undelegate()" call is probably not doing what you think/want.
edit again — this could be done more intelligently; there really only needs to be one timer id stored on the body, of course. I'm kind-of slow sometimes.