画像をクリックすると次の画像に変わる簡単なスライドショーを作成しようとしています。これまでのところ、1-4 という名前のサブフォルダーに 4 つの画像があります (例: 1.jpg、2.jpg、3.jpg、4.jpg)。4 より大きい場合は 1 にリセットされるように、カウンター (変数 imgcounter) を設定しました。このカウンターを使用して、img 要素の src 名を簡単に変更します。
シンプルなバージョン:
$(document).ready(function() {
var imgcounter = 1;
$('#slide img').each(function() {
$(this).click(function() {
if(imgcounter <= 4 ) {
imgcounter++;
$(this).attr('src', 'images/' + imgcounter + '.JPG');
} // end if
else {
var imgcounter = 1;
$(this).attr('src', 'images/' + imgcounter + '.JPG');
} // end else
}); // end click
}); // end each
}); // end ready
このバージョンでは、クリックしても画像は変わりません。
ソースを置き換えるものを定義する変数を配置する、このより複雑な方法も試しました。特に、src 全体を置き換えることを示すために二重アポストロフィ '' を使用した部分で、replace() 関数を正しく使用しているかどうかはわかりません。また、replace() 関数の 2 番目の部分 ('images/' + imgcounter + '.JPG') を正当に書き出したかどうかもわかりません。
$(document).ready(function() {
var imgcounter = 1;
$('#slide img').each(function() {
var imgFile = $(this).attr('src');
var preloadImg = new Image();
$(this).click(function() {
if(imgcounter <= 4 ) {
imgcounter++;
preloadImg.src = imgFile.replace('', 'images/' + imgcounter + '.JPG');
$(this).attr('src', preloadImg.src);
} // end if
else {
var imgcounter = 1;
preloadImg.src = imgFile.replace('', 'images/' + imgcounter + '.JPG');
$(this).attr('src', preloadImg.src);
} // end else
}); // end click
}); // end each
}); // end ready
このバージョンでは画像が変更されましたが、壊れた画像シンボルが表示され、エラー コンソールに次のように表示されます。ソース全体を置き換えることができない理由がわかりません。代わりに、最後にソース名のコピーを追加するだけのようです...
事前に助けてくれてありがとう!