0

カウンターは10枚の写真の後で1にリセットされません。なんで?それは無限に数えられます。なぜ機能しないのか理解できません。カウンターが11に達した後、彼は1に設定する必要があります。助けてください。解決策が見つかりません。

    <head>

            <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>

            <script>

            $(document).ready(function(){

                    var timer,

                            counter = 1,

                            changepic = function(pic){

                                    var src = pic.attr("src");

                                    counter = counter+1;

                                    if (counter == 11){ ## here is the prblem
                                    counter = 1;
                                    }

                                    pic.attr("src", src.substring(0,src.lastIndexOf('.')-1)+counter+".jpg")

                            };

                    $('img').hover(function(){

                            var $this = $(this);

                            timer = setInterval(function(){changepic($this);}, 1000);

                    }, function(){clearInterval(timer);});

            });

            </script>

    </head>

    <body>

            <table style="float&#58;left;">

            <tr><tr><td><img src="testbilder/test.1.jpg"><br>Text</td></tr> </tr>

            </table>

    </body>

どうすれば修正できますか?

4

1 に答える 1

1

まず、問題がカウンターにあることを確認する必要があります。ログステートメントを追加して、GoogleChromeの開発者ツールでログを確認します。

if (counter == 11){ ## here is the prblem
    counter = 1;
}
console.log('counter : '+counter);

あなたのコードを見た後...私は問題がこのステートメントにあると思います。

pic.attr("src", src.substring(0,src.lastIndexOf('.')-1)+counter+".jpg")

counter = 10 ...の場合、srcの値は次のようになります。

src ='testbilder / test.10.jpg'

これで、src.substring(0、src.lastIndexOf('。')-1)+ counter + "。jpg")は、9までのカウンターでは正常に機能しますが、counter=10の場合は...これは次のようになります。

changepic = function(pic){
    var src = pic.attr("src");  // here src = 'testbinder/test.10.jpg'
    counter = counter+1;  // here counter = 11
    if (counter == 11){ 
        counter = 1; // here counter = 1
    }
        // now src.substring(0,src.lastIndexOf('.')-1) = 'testbinder/test.1'
        // src.substring(0,src.lastIndexOf('.')-1)+counter+".jpg"='testbinder/test.11.jpg'
        pic.attr("src", src.substring(0,src.lastIndexOf('.')-1)+counter+".jpg");

    };
}

この問題を修正するには、次のように変更します。

pic.attr("src", src.substring(0,src.indexOf('.')+1)+counter+".jpg");
于 2012-12-10T13:10:55.603 に答える