javascript - 有没有办法在 Plyr 数组中找到元素的父级?
问题描述
我刚刚从 Vimeo 的 API 切换到 Plyr.js,所以我可以为我的视频选择自定义海报。以前,我对每个 Vimeo 播放器进行了硬编码,因此一旦播放或暂停,我就可以调用任何播放器的父级,并相应地更改其 css。
使用 Plyr,我可以使用数组进行设置来简化很多工作。我唯一的问题是现在我无法访问任何数组元素的父级。
我尝试了几种不同的父方法并通读了 Plyrs 文档,但是我对使用数组相当缺乏经验,所以我确信我缺少一些简单的东西。
<html>
<div class="filterDiv sound show vid" id="none" name="Sound Reel">
<div class="js-player" data-plyr-provider="vimeo" data-plyr-embed-
id="351623699">
</div>
</div>
</html>
<script>
var t;
const players = Array.from(document.querySelectorAll('.js-player')).map(p => new Plyr(p));
players.forEach(function(element) {
element.on('play', event => {
parentElement = element.parentElement;
parentElement.setAttribute("id","active");
$('#tail').css('visibility', 'visible');
// Do stuff to parent container
t = setTimeout(function() {
parentElement.setAttribute("id","none");
$('#tail').css('visibility', 'hidden');
}, 3000);
});
element.on('pause', event => {
clearTimeout(t);
parentElement = element.parentElement;
parentElement.setAttribute("id","active");
$('#tail').css('visibility', 'visible');
// Do stuff to parent container
});
});
</script>
我的最终目标是检测我页面上的哪个视频被播放或暂停,然后用 js 更改其容器 div。
解决方案
我需要做的就是改变我访问父元素的方式,element.media
而不是仅仅使用element
.
parentElement = element.media.parentElement.parentElement.parentElement
推荐阅读
- git - Gitlab上传速度4 KiB/s
- javascript - 用 jest 测试 useInterval 钩子不会注册计时器
- html - 用 Jquery 替换文本,避免更新按钮
- linkerd - LinkerD Cert Rotation 未在文档中明确描述
- java - 将 gradle 命令行参数传递给 application.properties
- java - 如何使用 KeyListener 在 GridLayout 中显示一些消息
- android - MaterialComponents 排版不透明度
- python - CSV 和 Jinja2 模板:将列标题添加到 CSV 数据
- typescript - 模型类中的 Angular 11.0.9 吸气剂不起作用
- python-3.x - 返回最大字符数的python程序,例如input=aabbbcczaaaabbbccc ouput=a3b3c3z1