人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

addEventListenerを使って再生が終了したら次の曲がなれるようにしたいです。

ループのさせ方がわかりません…

$("audio")[i].addEventListener('ended', function () {

$("audio")[i++].play();

});
$("audio")[i].play();


●質問者: 匿名質問者
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 匿名回答1号
ベストアンサー

実装は色々

再帰的、大域変数使用

var i=0;
function playAndNext() {
 $("audio")[i].addEventListener('ended', playAndNext);
 $("audio")[i++].play();
}
playAndNext();

事前登録、クロージャ使用

for (var i=0; i < $("audio").length-1; i++) {
 $("audio")[i].addEventListener('ended', (function (j) {
 return function () {$("audio")[j+1].play();};
 })(i));
}
$("audio")[0].play();

しかし、せっかくのjqueryなので。
あと、最後のエラー処理も入れておきたい。

$("audio").bind('ended', function () {
 var e = $(this).nextAll("audio:first")[0];
 if (e) {e.play();}
 // else {$("audio:first")[0].play();}
});
$("audio:first")[0].play();
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ