簡體   English   中英

點擊功能加載后刷新div的內容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM