2012-07-11 79 views
1

我在页面上放置了一个2 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); 
+1

什么具体是“不工作” – Austin 2012-07-11 18:29:23

回答

1

尝试移动setIntervalclick事件处理器内部,使得它不会在第一次点击之前火了,你保证loc定义第一时间间隔完成之前。

此外,您的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

downvote的解释? – jackwanders 2012-07-11 18:33:17

+0

好吧,我会upvote,但我没有它的代表。现在正在工作。这是我错过的简单错字。这种简单的事情会导致如此大的悲伤。如果刷新发生在点击事件之前,它并不重要,它只是一个空白的div,这对我的情况是可以的。 – 2012-07-11 18:51:38

+0

@JosephJ:如果指出的错字jackwanders就是回答了你的问题,那么虽然你不能给予好评还可以接受通过单击旁边的蜱答案,这将获得你一个小代表和移动你更接近投票。更多信息可以发现:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – forsvarir 2012-07-11 21:41:07

0

您在锚a这将被加载的内容,但setInterval的的另一种情况下的点击事件分配网址禄哪些在加载时执行loc将不会有url。因此,将url指定为声明它的时间或确保它在setInterval之前分配。

还要注意live已被弃用,你应该使用on代替。

var loc = "player.php?user=" + $("a").html(); 
$("a").live('click', function(){ 
     loc = "player.php?user=" + $(this).html(); 
     $("#result").load(loc); 
    }); 
setInterval(function(){ 
    $("#results").load(loc); 
}, 1000); 
+1

降票的原因? – Adil 2012-07-11 18:35:32