1 回答
TA贡献1852条经验 获得超1个赞
您可以在不需要 ID 属性的情况下完成特定视频的定位,而是使用querySelectorAll和querySelector(您也可以使用父/子/兄弟遍历技术)
如果您创建一个nodelistusing ,querySelectorAll您可以在外部分配事件侦听器而不是使用<a onclick='play()'>etc ,这是首选方法。该click事件已注册为您可以发出另一个查询以查找使用this的子元素thisquerySelector
<?php
include("conn.php");
$sql = mysqli_query($con, "SELECT * FROM uploads ORDER BY file_id DESC");
while ($row = mysqli_fetch_array($sql)) {
$path = $row['path'];
$caption = $row['caption'];
?>
<div class="responsive">
<div class="gallery">
<a href="#">
<video width="600" height="400">
<source src="store/vids/<?php echo $path;?>" type="video/mp4">
</video>
</a>
<div class="desc"><br><?php echo $caption?> <span class="badge badge-pill badge-primary">Trending</span></div>
</div>
</div>
<?php
}//close while loop
?>
<script>
Array.from( document.querySelectorAll('.gallery > a') ).forEach( a=>{
a.addEventListener('click',function(e){
var video=this.querySelector('video');
if( video.paused )video.play();
else video.pause();
// find other videos that are NOT the one just activated and pause them
Array.from( document.querySelectorAll('.gallery > a > video') ).forEach( el=>{
if( el!=video )el.pause()
})
})
})
</script>
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报