2

10 秒ごとにページを整理する必要がある写真がいくつかあります。

次のように:

  • 写真1 満載
  • 10 秒待ちます
  • 写真1のあと、写真2が満載です
  • 10 秒待ちます
  • 写真2のあと、写真3が満載です
  • 10 秒待ちます

、...

すべての写真が完成するまで。

私の問題 :

メソッドのロードが機能しない & 待機の方法がわからない

これが私のコードです:

<html>
<head>
    <title></title>
    <script type="text/javascript" src='jq.js'></script>
</head>
<body>
    <div></div>
    <script type="text/javascript">
        var images=["images/0.jpg",
                    "images/1.jpg",
                    "images/2.jpg",
                    "images/3.jpg",
                    "images/4.jpg",
                    "images/5.jpg",
                    "images/6.jpg",
                    "images/7.jpg",
                    "images/8.jpg",
                    "images/9.jpg",
                    "images/10.jpg"
                ];
        for (var i=0;i<images.length;i++){
            var imgtag = '<img src='+images[i]+' />';
            $(imgtag).load(function() {
                $('div').append(imgtag);
                //Wait 10 sec   ==> Is there a function to Waiting :-??
            }
       }
    </script>
</body>
</html>

ご返信ありがとうございます。

4

2 に答える 2

1

まず、DOM Readyイベントを待ってから、再帰的なコールバックを使用する必要があります。

$(function() {   // on DOM ready

var images = [
    "images/0.jpg",
    "images/1.jpg",
    "images/2.jpg",
    "images/3.jpg",
    "images/4.jpg",
    "images/5.jpg",
    "images/6.jpg",
    "images/7.jpg",
    "images/8.jpg",
    "images/9.jpg",
    "images/10.jpg"
];

(function loadImg(index) {
    if (index >= images.length) return;  // no more image to load

    $('#divId').append( $('<img />').attr('src', srcImg).load(function() {
        // invoke this function again in 10 secs incrementing index by 1
        setTimeout(function() { loadImg(index + 1); }, 10000);
    }) );

})(0);   // initiate loading sequence with first image index

});
于 2013-01-16T12:15:32.030 に答える
0

関数を使用setIntervalします。

var images=["images/0.jpg",
                    "images/1.jpg",
                    "images/2.jpg",
                    "images/3.jpg",
                    "images/4.jpg",
                    "images/5.jpg",
                    "images/6.jpg",
                    "images/7.jpg",
                    "images/8.jpg",
                    "images/9.jpg",
                    "images/10.jpg"
                ];
var count = 0;
function loadImage() {
  if (count < images.length) {
    var imgtag = '<img src='+images[count]+' />';
    $('div').append(imgtag);
    count++;
  }
}

setInterval(loadImage, 10000);
于 2013-01-16T11:57:13.023 に答える