0

settimeout()関数を.each関数と一緒に使用したい。基本的に各画像を5秒間表示してから次の画像を表示することはできませんが、最後の画像しか表示できません。.eachは実行され、3秒間停止しません。どうすればよいですか。これを行う?これは私がやっている方法です。

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(document).ready(function () {

        $('#Images').find('li').each(function () {
            var img = this;
            setTimeout(function () {
                Start(img);
            }, 3000);

        });


    });
    function Start(img) {
        $('#slideshow').html(img);
    }
   </script>
   </head>
   <body>
   <form id="form1" runat="server">
<div id="slideshow">
</div>
<div style="display:none;">
<ul id="Images">
<li><img src="images/ajax-loader.gif" /></li>
<li><img src="images/Ajax Loader White.gif" /></li>
<li><img src="images/fancybox_sprite.png" /></li>
</ul>
</div>
</form>

4

2 に答える 2

1

これを試してください:

    $('#Images').find('li').each(function (k,v) {
        var img = this;
        changeImg(img, k);
    });

    function changeImg(img, k) {
        setTimeout(function () {
            Start(img);
        }, 3000*(k+1));
    }
于 2012-07-17T05:31:01.250 に答える
0

これを試して

var images = $('#Images').find('li');
var imageCount = images.length;
var counter = 0;
setTimeout(function(){
Start(images[counter++]);
if(counter>=imageCount)
    counter =0 ;

},3000);
于 2012-07-17T05:32:49.890 に答える