在每10秒后在一个setinterval函数中特定点击2个不同的按钮后,是否可以在1 div中加载2个不同的PHP文件?

时间:2011-08-21 06:14:42

标签: html jquery javascript-events

我试图在用户点击一定间隔后加载2个不同的php文件。 这是代码片段,帮助我解决这个问题。

function load_recent_popular(recent) {
    if( typeof load_recent_popular.counter == 'undefined' ) { 
        load_recent_popular.counter = 0;  
    }
    if(recent==1) {
        var loadUrl = "1.php"; 
        $("#box15").load(loadUrl); 
        load_recent_popular.counter = 0;  
    }
    else {
        var loadUrl = "2.php"; 
        $("#box15").load(loadUrl); 
        load_recent_popular.counter = 1;  
    }
    handle = setInterval(function() { 
        if(load_recent_popular.counter == 0) { 
            loadUrl = "1.php";  
        }
        else if(load_recent_popular.counter == 1) { 
            loadUrl = "2.php";  
        }
        $("#box15").load(loadUrl); 
    }, 10000);  
}

<a onClick="load_recent_popular(1)">Load 1</a><a onClick="load_recent_popular(2)">      Load 2</a>

<div id="box15"></div>

我尝试包含2个不同的时间间隔,每个时间间隔有两个不同的句柄,插入的模块在开始另一个之前清除1个时间间隔,但它不起作用,所以如果有人也得到解决方案,请分享。

1 个答案:

答案 0 :(得分:2)

你最终会运行多个计时器,但除了以外它看起来还不错。对于计时器问题,您可以使用#box15上的.data存储计时器ID,然后在开始新计时之前调用clearTimeout停止计时器ID。像这样:

function load_recent_popular(recent) {
    var $box15 = $('#box15');
    var timer  = $box15.data('lrp_timer');
    if(timer)
        clearInterval(timer);

    if( typeof load_recent_popular.counter == 'undefined' ) { 
        load_recent_popular.counter = 0;  
    }
    if(recent==1) {
        var loadUrl = "1.php"; 
        $("#box15").load(loadUrl); 
        load_recent_popular.counter = 0;  
    }
    else {
        var loadUrl = "2.php"; 
        $("#box15").load(loadUrl); 
        load_recent_popular.counter = 1;  
    }
    $box15.data('lrp_timer', setInterval(function() { 
        if(load_recent_popular.counter == 0) { 
            loadUrl = "1.php";  
        }
        else if(load_recent_popular.counter == 1) { 
            loadUrl = "2.php";  
        }
        $("#box15").load(loadUrl); 
    }, 10000));
}

该技术的现场演示(更短的时间间隔,没有AJAX):http://jsfiddle.net/ambiguous/MagL4/