繁体   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