我认为这是一个基本的jquery问题,但它非常烦人。这就是我在做的事情:
class="tab"
列表文件(外部)
问题是:在刷新期间,名称选择器的值每1秒更改一次(因为刷新),我最近点击了来自#1的hrefs。
$('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');
});
答案 0 :(得分:1)
我认为你想要在开始一个新的间隔定时器时取消它。
编辑 - 哎呀坚持我正在修理它......好的谢谢@kingjiv !!
$('a.tab').live('click',function() {
var value = $(this).attr('name');
var timers = $('body').data('timers') || {};
//....
for (var n in timers) clearInterval(timers[n]);
timers[value] = setInterval(function(){
$("div#timed").load('retriever.php', {"update":value} );
} ,1000);//set interval
//....
$(this).undelegate('click');
$('body').data('timers', timers);
});
正如其他人所说的那样,“undelegate()”调用可能没有按照你的想法做到。
再次编辑 - 这可以更智能地完成;当然,实际上只需要存储在身体上的一个计时器ID。我有时候很慢。