私はforループ内にsetTimeoutを持っていますが、予想通りに動作しません。forループ内でsetTimeoutを使用すると動作しません。
私は一度にすべてを読み込んでいるページにバナーの束を持っています。私は親のdiv HTMLを削除して、配列に格納しています。それから私は各親が対応するhtmlを5秒ごとに受け取るようにしたいと思います。これは準備完了状態で一度だけ発生する必要があります。
ここに私のコードだ...
function oneBanner() {
var divs = $('.banner-slide'),
imgs = [];
for (var j = 0; j < divs.length; j++) {
imgs.push($('.banner-slide:nth-child(' + (j+1) + ')'));
}
for (var k = 0; k < imgs.length; k++) {
var url = $(imgs[k]).html();
$(imgs[k]).html('');
setTimeout(function(y) {
console.log(k * 5000);
$(imgs[k]).html(url);
}, k * 5000, k);
}
}
oneBanner();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="banner-slide">
<img src="http://www.placecage.com/150/150" >
</div>
<div class="banner-slide">
<a href="#"> <img src="http://fillmurray.com/150/150" > </a>
</div>
<div class="banner-slide">
<img src="http://stevensegallery.com/150/150" >
</div>
あなたは画像を一度に画面1に印刷されません見ることができるように5秒ごとに - 私は私がやったと思いました。
ありがとうございました。
セルジュ
私が "ショー" の各5秒ごとに必要としないで 'Y' を交換してください。ページが読み込まれると、各親のhtmlを削除して配列に格納する必要があります。 5秒ごとに元の場所に戻します。そして、それは内側のhtml全体でなければなりません - imgタグかimgとアンカーのどちらかです。私はこれが意味をなさないことを願っています。 – Sergio
@Sergio answer updated –
これは美しく動作しています。どうぞあなたはどんなことを詳しく説明できますか? – Sergio