2012-07-11 112 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