加载点击功能后刷新div的内容

时间:2012-07-11 18:24:02

标签: javascript jquery ajax html

我的页面上有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);

2 个答案:

答案 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