我的页面上有2个Div的页面。第一个Div工作正常,并加载一个玩家列表。现在,当您点击该Div中的链接时,它会加载第二个Div,其中包含有关该播放器的信息。这也很好,但我想做的是让第二个Div在点击事件加载后定期刷新玩家数据。这是我目前的尝试,但它不起作用:
var loc = "";
$("a").live('click', function() {
loc = "player.php?user=" + $(this).html();
$("#result").load(loc);
});
setInterval(function() {
$("#results").load(loc);
}, 1000);
答案 0 :(得分:1)
尝试移动setInterval
事件处理程序中的click
,以便在第一次单击之前不会触发它,并确保在第一个间隔完成之前定义loc
。 / p>
此外,您的setInterval
内可能会出现拼写错误,因为它指的是$('#results')
,而不是$('#result')
。其中一个可能不正确。
最后,最好将setInterval
分配给变量,以便以后可以使用clearInterval
进行清除。它还允许您只设置一次间隔,而不是每次用户单击
var loc = "";
var interval = null;
$("a").live('click', function(){
loc = "player.php?user=" + $(this).html();
$("#result").load(loc);
// only create the interval once
if(!interval) {
interval = setInterval(function(){
$("#result").load(loc);
}, 1000);
}
});
答案 1 :(得分:0)
您正在将锚点a
的click事件中的url分配给loc,这将加载内容,但是在加载时执行的setInterval的另一种情况是loc将没有url。因此,请指定url以定位您声明它的时间,或确保在setInterval之前分配它。
另请注意{@ 1}}已弃用,您应使用live
代替。
on