0

私のスクリプト:

function pagination(id)
    {

    $("#article_load_destacados").load("indexer_destacados_news.php?pg_d="+id);


    if (id+1>2)
    {        
       pagination(0);

       setInterval(function() 
       {
          pagination(0);
        }, 4000);        
    }
    else
    {        
       setInterval(function() 
       {
         pagination(id+1);
       }, 4000);        
    }
    }

    </script>

    <div id="article_load_destacados"></div>

    <script>
    pagination(0);
    </script>

ページネーションを表示するためにこのスクリプトを作成し、スクリプトはPHPファイルを呼び出し、これをページネーションとともにロードします。これは、異なるIDを送信し、PHPファイルをロードするときにページネーションの異なる要素を同時にロードします。このスクリプトでは、ID に基づいてすべてのページネーションを実行したいと考えています。たとえば、5 つのページがある場合、スクリプトは 0 から 5 まで実行されsetInterval、jQuery で for を使用します。

スクリプトのページネーションを取得し、4 秒ごとに異なる ID を送信します。スクリプトを実行すると、ナビゲーターが機能せず、無限ループが生成される問題。

4

2 に答える 2

1

setInterval ではなく setTimeout が必要であると指摘したように、コードを簡素化することもできますhttp://jsfiddle.net/rayBt/

var imax = 3;
var time = 500;
function pagination(id){
  $("#article_load_destacados").load("indexer_destacados_news.php?pg_d="+id);
  id = (id + 1) % imax;
  setTimeout(function () {
      pagination(id);
      }, time);        
}
于 2012-12-11T07:56:36.507 に答える
0

setInterval関数を特定の間隔で繰り返すために使用されます。setIntveral再帰的に呼び出しているため、paginationページネーションが開始されると、スクリプトはさまざまな値で実行されます。

setTimeout代わりに使用する必要があります。setTimeout一定時間後に関数を開始します。これはあなたが望むように聞こえます。

于 2012-12-11T07:39:50.470 に答える