1 に答える
0
作成したコードに構文エラーがいくつかあります。
does this line of code "var count = showing.parent().parent();"
point to the div #slider
はい、スライダーdivを指しています。
より良い ..showing.closest('div');
これは意味がないと思います
showing.parent().parent().next().children(':second');
これにより、上記のHTMLでは存在しない2番目の子が取得されます。next div
またclosest('#Slider').children(':second');
、意味がありません。
フルコード..いくつかの仮定の後
function slideShow() {
var showing = $('#slider .is-showing');
var count = showing.closest('div');
var next = count.next('div').length
? showing.closest('div').next('div').children(':first')
: count.find('img');
showing.fadeOut(800, function() {
next.fadeIn(800).addClass('is-showing');
}).removeClass('is-showing');
setTimeout(slideShow, 5000);
}
アップデート
次のdivが存在しないとあなたは言いました
つまり.children(':second');
、各divにはアンカー要素である子が1つしかないため、意味がありません(divの次ではありません)。.children()は、ネストされた子ではなく、直接の子を取得します。
最初にクラスが「表示中」の画像を表示し、次に.next()を使用して次のimg要素に移動しました
nextはすぐに兄弟を取得するため、これは上記のHTMLでは機能しません。画像に対して.next()を実行すると、画像の兄弟がないため、何も取得されません。
フェード機能内でクラス(is-showing)を追加および削除するのはなぜですか
フェード関数は非同期であるため、コールバックで行う必要があります。それ以外の場合は、すぐに反映されます。
于 2012-11-13T00:48:44.740 に答える