我试图弄清楚以下内容。
我有以下 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 实例都在一个 div 标签内,该标签的 id 为“post-1”、“post-2”等。其中数值是数据库中的 post id。我可以将此数字 id 添加到 bar,所以它会像 bar-1、bar-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();
}
有人可以向我解释如何实现吗?