不断检查何时添加CSS类

时间:2016-07-25 13:39:44

标签: javascript jquery video.js

我正在尝试在视频暂停时显示一个元素。 我正在使用video.js,目前,如果播放,暂停,完成视频等,则会添加课程。

我不能做的是检查使用.hasClass()并显示元素。 到目前为止,我正在使用它:

 if ($('.video-js').hasClass('vjs-paused')) {
    $('.btn').addClass('show');}
    else {
      $('.btn').removeClass('show');

    }

我想我需要不断检查任何变化,但我真的不知道该怎么做。

我还看过一个名为watch的插件但不知道如何使用它。

这是一个codepen:

https://codepen.io/florinsimion/pen/wWjxzA

2 个答案:

答案 0 :(得分:5)

您不需要经常这样做,这会降低浏览器的性能。 video元素包含可以收听的事件:

$('.video-js').on('pause play', function () {
  if ($(this).hasClass('vjs-paused')) {
    $('.wrapper').addClass('show');
  } else {
    $('.wrapper').removeClass('show');
  }
});

答案 1 :(得分:1)

似乎.video-js不是正确的元素。

您可以使用videojs API:

player.on('pause', function () {
    $('.btn').addClass('show');
});

player.on('play', function () {
    $('.btn').removeClass('show');
});

请参阅CodePen

或使用jQuery监听视频对象的事件:

$(function() {
  $('video#content_video_html5_api').on('play pause', function() {
    $('.btn').toggleClass('show', $(this).get(0).paused);
  });
});