[英]Refresh contents of div after loading with click function
我在頁面上布置了2個Div。 第一個Div工作正常,並加載了玩家列表。 現在,當您單擊該Div中的鏈接時,它將加載第二個Div,其中包含有關該播放器的信息。 那也很好用,但是我想做的是讓第二個Div在被click事件加載之后定期刷新播放器數據。 這是我目前的嘗試,但是沒有用:
var loc = "";
$("a").live('click', function() {
loc = "player.php?user=" + $(this).html();
$("#result").load(loc);
});
setInterval(function() {
$("#results").load(loc);
}, 1000);
嘗試將setInterval
移入click
事件處理程序內,以使其在第一次單擊之前不會觸發,並確保在第一個間隔完成之前定義了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);
}
});
您在錨點a
click事件中將url分配給loc,該錨事件將要加載內容,但在加載時執行的setInterval的另一種情況下,loc將沒有該url。 因此,分配url來定位您聲明它的時間,或者確保在setInterval之前分配它。
另請注意,不建議使用live
on
而應改用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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.