これはおそらくこれまでに回答されていますが、これはどのように機能すべきかはすでに分かっていますが、何らかの理由でそうではありません。私はそれがどのように要素をループしているのかもしれないと思う。jQueryはギャラリー内のリスト項目を回転します
$(document).ready(function() {
var element = '#gallery ul#gallery-container';
var idx=0;
var timeout = 3000;
var number = $(element + ' li').length;
function changeSlide() {
$(element + ' li:eq(' + idx + ')').fadeOut();
idx = idx + 1;
if (idx == number) {
idx=0;
}
$(element + ' li:eq(' + idx + ')').fadeIn().delay(timeout).delay(0, function() {
changeSlide();
});;
}
$(element + ' li').hide();
$(element + ' li:first').fadeIn().delay(timeout).delay(0, function() {
changeSlide();
});
});
次に、リストには、このようなものです:
<div id="gallery">
<ul id="gallery-container">
<li><img src="media/images/screen-shot-02.jpg" width="173" height="258" alt=" "></li>
<li><img src="media/images/screen-shot-01.jpg" width="173" height="258" alt=" "></li>
</ul>
</div>
リスト項目が関数を呼び出し、それ自身を隠すように、私が遅れた後、一つの要素の1をループにそれを取得しようとしていました、カウンタがインクリメントされ、現在のインデックスが表示されます。 私はそれが呼び出される関数に警告を置くかのように、私は犯人はこのことを疑う:
$(element + ' li:eq(' + idx + ')').fadeOut();
このhttp://api.jquery.com/delay/によれば、 'delay()'関数はコールバック関数を持たないので、 'changeSlide()'は決して実行されません。 –
何らかの理由で、changeSlide()が最初に呼び出されますが、$(element + 'li:eq(' + idx + ')')fadeOut();呼び出されません。私はsetTimeoutに頼らざるを得ず、その作業をしなければならないかもしれません! – Designer023
ええ、 'changeSlide()'の最後の行に二重の ';;'があることに注意してください。 –