在模式关闭时停止YouTube视频 - 在加载AJAX之后

时间:2016-08-31 10:30:26

标签: javascript jquery ajax youtube

我有一个小脚本可以阻止YouTube视频在模式关闭后播放。问题是,如果通过AJAX加载HTML,它就不起作用。

脚本:

$('#panelModal-1').on('hidden.bs.modal', function () {
    callPlayer('yt-player-1', 'stopVideo');
});
$('#panelModal-2').on('hidden.bs.modal', function () {
    callPlayer('yt-player-2', 'stopVideo');
});

HTML(花括号表示从CMS中提取的数据):

<li>
  <a href="#" title="Watch Video" data-toggle="modal" data-target="#panelModal-{count}">
    <div class="video-background" style="background-image:url(http://img.youtube.com/vi/{video_youtube_id}/hqdefault.jpg)"></div>
    <div class="video-details">
      <h4>{title}</h4>
      <p>{video_subtitle}</p>
    </div>
  </a>
  <!-- Modal -->
  <div class="modal fade" id="panelModal-{count}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel-{count}">
    <div class="modal-dialog" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
          <h4 class="modal-title" id="myModalLabel-{count}">{title}</h4>
        </div>
        <div class="modal-body">
          <div id="yt-player-{count}" class="embed-responsive embed-responsive-16by9">
            <iframe class="embed-responsive-item" src="https://www.youtube.com/embed/{video_youtube_id}?enablejsapi=1"></iframe>
          </div>
        </div>
      </div>
    </div>
  </div>
</li>

AJAX部分是:

    $(document).ready(function()
    {
    $('.sub-nav').delegate('.load-case-studies', 'click', function(e)
    {
        // Don't follow the link
        e.preventDefault();

        $('.sub-nav a').removeClass('active');
        $(this).addClass('active');

        // Fetch the next page
        $.get($(this).attr('href'), function(data)
        {                                           
            // Only grab the part of the page we want
            content = $(data).find('.ajax-wrapper').hide();

            // Add it to the DOM
            $(content).replaceAll('#entry-container');

            // Fade-in our new content
            $(content).fadeIn('fast');
        });
    });
});

如果数据已通过AJAX加载,如何在模态关闭后让视频停止播放?

1 个答案:

答案 0 :(得分:0)

您可以使用以下jQuery命令。

$('#playerID').get(0).stopVideo();

如果您使用的是播放器API:

var player = new YT.Player('player');    
player.stopVideo();