私は次のことを理解しようとしています。
次のjQueryコードがあります:
var as = "";
var bPlay = 0;
audiojs.events.ready(function() {
as = audiojs.createAll();
$(".audiojs .play-pause").click(function() {
var e = $(this).parents(".audiojs").index(".audiojs");
$.each(as, function(t, n) {
if (t != e && as[t].playing) {
as[t].pause()
}
})
bPlay = !bPlay;
if (bPlay == 1) {
$(".bar").each(function(i) {
fluctuate($(this));
});
} else {
$(".bar").stop();
}
})
});
一言で言えば、誰かがページ上の特定の .audiojs インスタンスをクリックすると、リストが作成されます。1) 再生中の他のインスタンスがあるかどうかを確認し、一時停止している場合。そして、それが再生されている場合は、変動機能をページ上の要素に適用しますclass="bar"
。これが問題です!ページ上のすべての .bar に適用するのではなく、特定の .audiojs インスタンス (クリックされて再生されているもの) に関連付けられている特定のグループにのみ適用します。
次の解決策を考えました。各 .audiojs インスタンスは、「post-1」、「post-2」などの ID を持つ div タグ内にあります。数値はデータベースからの投稿 ID です。この数値 ID をバーに追加できるので、バー 1、バー 2 などのようになります...しかし、この後、問題が発生します。
JavaScriptが機能するには、クリックされているaudiojsインスタンスに関連付けられた「post-[id]」から数値を取得し、それを何らかの方法で保存する必要があるため、後でこのように使用できます
bPlay = !bPlay;
if (bPlay == 1) {
$(".bar-[value retrieved from post-...]").each(function(i) {
fluctuate($(this));
});
} else {
$(".bar-[value retrieved from post...]").stop();
}
誰かがそれを達成する方法を説明してもらえますか?