0

for ループを 10 回実行しようとしていますが、関数を再度呼び出すように setInterval を書きましたが、機能しません。私の for ループは 10 ターンしかありません。では、どうすればよいですか?

function randomThumbNews() {
        for(var i=0;i<10;i++){
        $.ajax({
            type: "get", url: "Home/Oku", data: {},
            success: function (data) {
                $("#thumbNews_" + i).html(data);
            }
        });
         }
    }
setInterval(randomThumbNews, 3000);
4

2 に答える 2

0

問題はこれです-いつ

function (data) {
     $("#thumbNews_" + i).html(data);
 }

ループはすでに終了しているため、i常に 10 になります。

<div>のいずれかに投稿された結果のみが表示されます

関数パラメーターにはクロージャーがないため、これで修正されます。

function ajaxAndSet(counter)
{
  $.ajax({
           type: "get", 
           url: "Home/Oku",
           data: {},
           success: function (data) 
           {
              $("#thumbNews_" + counter).html(data);
           }
        });
)

function randomThumbNews() 
{
   for(var i=0;i<10;i++)
   {
       ajaxAndSet(i);
   }
}

setInterval(randomThumbNews, 3000);
于 2012-08-14T15:18:19.107 に答える
0

次のようなものを試してください:

$.ajax({
    type: "get", url: "Home/Oku", data: {},
    context: i, /* NEW - this value comes to your success callback as 'this' */
    success: function (data) {
        $("#thumbNews_" + this).html(data);
    }
});
于 2012-08-14T15:21:05.033 に答える