javascript - 添加/删除类不会在单击时删除类

标签 javascript jquery

我为视频 slider 库设置了单击功能,当我单击主视频播放/或暂停时,我尝试向相应的缩略图添加“事件-缩略图”类。它正在工作并添加类(class)。当我再次单击主视频时,它并没有删除该类(class)。不确定我哪里出错了,有什么建议吗?

jquery:

$('.video-main').on('click', function () {
var mainVideoIndex = $('.video-main').index(this),
activeThumbnail = $(this).closest('.video-playlist').find('.l-thumbnail__title').eq(mainVideoIndex),

$('.l-thumbnail__title').not(activeThumbnail).removeClass('active--thumbnail');
activeThumbnail.addClass('active--thumbnail');

});

最佳答案

您需要检查单击的项目是否具有事件类,然后继续添加或删除事件类

我借用了其他答案的html和css

$('.video-main').on('click', function() {
  var $this = $(this);
  var mainVideoIndex = $('.video-main').index(this),
    activeThumbnail = $this.closest('.video-playlist').find('.l-thumbnail__title').eq(mainVideoIndex);

  // check if the clicked is the same as currently active item
  // if it is then remove active
  if (activeThumbnail.hasClass('active--thumbnail')) {
    activeThumbnail.removeClass('active--thumbnail');
  }
  // remove active from all thumbs titles then add active to clicked item
  else {
    $('.l-thumbnail__title').removeClass('active--thumbnail');
    activeThumbnail.addClass('active--thumbnail');
  }
});
ul.video-playlist li p {
    border-radius: 5px;
    padding: 5px;
}

.active--thumbnail {
    box-shadow: 0px 0px 5px green;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<ul class="video-playlist">
    <li>
        <p class="l-thumbnail__title">Thumbnail 1</p>
        <button class="video-main">Video 1</button>
    </li>
    <li>
        <p class="l-thumbnail__title">Thumbnail 2</p>
        <button class="video-main">Video 2</button>
    </li>
    <li>
        <p class="l-thumbnail__title">Thumbnail 3</p>
        <button class="video-main">Video 3</button>
    </li>
    <li>
        <p class="l-thumbnail__title">Thumbnail 4</p>
        <button class="video-main">Video 4</button>
    </li>
</ul>

关于javascript - 添加/删除类不会在单击时删除类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60548008/

相关文章:

javascript - 如何添加从 html 表中获取的 html 内容?

javascript - 从 h1 标签获取链接并使图像可下载

jquery - dojo、原型(prototype)和 jquery

javascript - 如果单击导航栏 ID,则 jQuery Mobile 发出警报

javascript - bootstrap-通过代码关闭“移动(汉堡)”菜单

javascript - Highcharts:从 CSV 加载数据时默认禁用系列

javascript - jQuery 表单验证无法正常工作

javascript - 使用属性等于选择器时转义元素名称中的方括号

javascript - 如何为每个元素实现一个单例?

javascript - 在移动设备上禁用响应式侧边栏