jQueryを使用してスライドショーを実装しようとしています.SlideShowというボタンがあり、クリックするとスライドショーがトリガーされます. 一連のサムネイルを表示します。
<div class="pics">
<img u="bob" id="pic1" src="/photos/thumbs/file1.jpg" class="apt" f="file1.jpg">
<img u="rob" id="pic2" src="/photos/thumbs/file2.jpg" class="apt" f="file2.jpg">
<img u="job" id="pic3" src="/photos/thumbs/file3.jpg" class="apt" f="file3.jpg">
<img u="tom" id="pic4" src="/photos/thumbs/file4.jpg" class="apt" f="file4.jpg">
<img u="scott" id="pic5" src="/photos/thumbs/file5.jpg" class="apt" f="file5.jpg">
</div>
親指にはクラス「apt」があり、すべての親指のセットを取得できることがわかります。クリック イベント ハンドラーは、setInterval(f, 5000) を使用してループ内で関数を呼び出すだけで済みます。このようにして、5 秒ごとに 1 つの親指の情報を読み取り、サーバーから完全な画像を読み込みます。
しかし、どうやっても未定義になります。コードは次のとおりです。
var idx='';
function SlideShow() {
idx = 1; //global variable to track index of current thumb inside <div>
setInterval("GetFullImage()",5000);
}
function GetFullImage(){
var i = $('.apt:nth-child(' + idx + ')').attr("id");
var u = $('.apt:nth-child(' + idx + ')').attr("u");
var f = $('.apt:nth-child(' + idx + ')').attr("f");
alert('i:=' + i + ' u:' + u + ' f:' + f); <-- always say i, u, f undefined after first time
idx++;
}
なにが問題ですか?私は setInterval() 呼び出しであまり遊んでいません。