【问题标题】:trigger a click after click element点击元素后触发点击
【发布时间】:2021-05-11 05:44:21
【问题描述】:

我有一个带有 imgiframe 视频的 div。我想在单击图像后播放视频。 (出于用户体验目的,它无效的更改 url

我的js 代码没有按预期工作。 youtube 视频无法播放。

$(".youtube-video img").click(function (e) { 
  $(".youtube-video .video").trigger('click');
    ev.preventDefault();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div class="youtube-video">
    <img src="http://i.ytimg.com/vi/<?php echo $video1 ?>/maxresdefault.jpg">
    <div class="video">
        <iframe frameborder="0" src="https://www.youtube.com/embed/<?php echo $video1 ?>" allowfullscreen="" style=""></iframe>
    </div>
</div>

【问题讨论】:

  • js 代码没有按预期工作是什么意思.. 请详细说明?
  • @Swati 我不知道为什么,但是 youtube 视频没有开始
  • 这里 $(".youtube-video. img") 删除 image 之前的那个多余的点。另外,请查看this 帖子。
  • 已编辑。它不工作。
  • 您是否检查了我在之前评论中添加的链接?

标签: javascript jquery


【解决方案1】:

在 JQuery 中使用 player.playVideo()

所以它会像在 javascript 中那样:document.querySelector("iframe").contentDocument.getElementsByClassName("html5-video-player")[0].playVideo()

html5-video-player 类是包含函数 playerVideo 的类,我们只需获取带有 contentDocument 的 iframe Dom。
不要忘记在 iframe 链接的末尾添加?enablejsapi=1&amp;version=3&amp;playerapiid=ytplayer

来自Youtube player api doc

【讨论】:

  • 我没有使用 youtube api。
  • 是的,但是当您使用 youtube iframe 时,这是添加所有功能,除了 iframe 之外不需要脚本。为此,您必须添加 ?enablejsapi=1&version=3&playerapiid=ytplayer
  • 我尝试$(".youtube-video .video iframe").playVideo();,但它不起作用。
  • 试试我给你的原生代码(jquery在这种情况下没用)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多