javascript - 使用 javascript 点击时仅激活 div 子类
问题描述
我有一个 wordpress 查询循环浏览页面上的帖子。每个 .audio-box 有 2 个 .play 按钮,我需要一起工作,当单击一个时,我希望该 div 中的另一个执行相同的操作。问题是我在页面上有多个音频框 div。我只需要该特定 .audio-box div 中的 2 个播放按钮同时工作,而不是其他所有按钮。
这是我的html:
<div class="audio-box">
<div class="audio-btn">
<img src="image/path.jpg" alt="play" />
</div>
<div class="audio-content">
<div class="date">Published 18/01/20</div>
<h2>title</h2>
<p>content</p>
</div>
<div style="clear:both;"></div>
<div class="audio-player play-wrap">
<audio id="player" class="music">
<source src="path/to/audio.mp3" type="audio/mpeg" />
</audio>
<div id="audio-player">
<div id="controls">
<i id="play" class="fa fa-play play"></i>
<div id="progressbar"></div>
<span id="time" class="time">00:00</span>
<i id="mute" class="fa fa-volume-up"></i>
<div id="volume"></div>
</div>
</div>
<i class="fa fa-play play"></i>
</div>
</div>
这是我拥有的javascript:
play_button.click(function() {
player[player.paused ? 'play' : 'pause']();
$('.play').toggleClass("fa-pause", !player.paused);
$('.play').toggleClass("fa-play", player.paused);
});
我知道这个问题是因为我说的是 .play 元素上的切换类,但是有没有办法在那个特定的 .audio-box div 中说 .play 元素?
解决方案
以下将从单击的按钮向上看,到下一个父级,并将在某处找到的元素.audio-box
上展开操作:.play
play_button.click(function() {
player[player.paused ? 'play' : 'pause']();
$(this).closest('.audio-box')
.find('.play')
.toggleClass("fa-pause", !player.paused)
.toggleClass("fa-play", player.paused);
});
推荐阅读
- python - 同时使用两个 for 循环
- java - 如何创建.pdf,写入并使用JFileChooser 保存?
- javascript - Cordova 应用程序在加载带有致命信号 11 (SIGSEGV) 代码 1 的 MobileNet 模型时崩溃
- javascript - 如何将我的减速器导入 reducers.spec.js?
- java - ElasticsearchException.getIndex 中的空指针
- angular - NG 服务:一项服务发出 CORS 错误,其他服务工作正常
- python-3.x - 如何使用python生成在一段时间内有效的简单整数或数字密码?
- r - 在 SpatialPointsDataFrame 中选择和重命名列
- sql - Oracle 查询 -ListAgg
- php - 提供了 Doctrine nodename 或 servname,或在 Docker 上未知