以下のコードは、forループ内のsetIntervalに入れる必要があります。私は基本的に、forループの次の繰り返しの間に10秒の休止を入れる必要があります。これは非常に基本的なスクリプトのために、次のものに移動する前に10秒間divのバナーを表示します。既存のsetIntervalは、オプションを使い果たしたときに別のウェブサイトから降りたコードです。どんな助け?そして、私は将来のために知っているように、あなたが私にロジックを説明する気にしない:)JavaScriptのforループ内のsetInterval
$("document").ready(function() {
// bannerChange
function bannerChange(banner,div,milliseconds) {
var length = banner.length;
for(i=0;i<length;i++) {
(function(i) {
setInterval(function() {
var url = banners[i].url;
var img = banners[i].image;
$("#"+div).html("<a href='"+url+"' target='_Blank'><img src='www/images/banners/"+img+"' /></a>");
},milliseconds)
})(i);
}
}
function showBanner(bannerName, bannerDiv, milliseconds) {
var url = "www/scripts/ajax/getBanners.php";
$.post(url, {name: bannerName}, function(data) {
if(data.response == true) {
bannerChange(data.banners,bannerDiv,milliseconds);
}
});
}
// Run banners
showBanner("Test Banner","test",10000);
});
あなたの答えをありがとう。私の唯一の問題は、特定のバナー名に関連付けられたバナーを使用してサーバーからjson配列を取得することです。したがって、サーバーから新しいバナーを取得することはありません。私はa)bannersを得るb)forループを実行し、c)何とか10秒間反復を一時停止すると考えた理由上記の例がこれを行うかどうかはわかりません。 – mauzilla
こんにちはアリエル、あなたの返信をもう一度感謝します。上の例は完璧ですが、私の適切なjsの欠如は私を失望させています:)私はサーバーからレコードを引っ張ってバナー配列にプッシュしています。これらのレコードはjsonのようです。私はgetNextBanner()内にconsole.log(バナー)を作成しました。応答は、多次元配列のバナー[] [0] = jsonオブジェクト、バナー[] [1] = jsonオブジェクトのように見えます。私がvar banner = banners [currentBanner]とconsole.log(banner)を実行すると、私は定義されていません。たとえconsole.log(banner [0])に同じ話をしようとしても。アドバイスはありますか? – mauzilla
アリエル、申し訳ありませんが、私は問題が何であるか知っていると思います。私は$ .post()の中で上記のようなforループを持っているので、$。post()関数の外で別のプロパティとしてバナーを使うことはできません。 $ .post()を使ってサーバーから情報を取得したことはありませんし、他の関数でもそれを使用しています。 – mauzilla