jquery - 切换类不起作用

标签 jquery css

我有三个播放按钮,用于一个简单的自定义播放器,以这种方式列出:

<div>
  <div class="gs-player">
    <div id="gs1" onclick="play(309689093)" class="fa fa-3x fa-play"></div>
  </div>
  <div class="gs-player">
    <div id="gs2" onclick="play(316017522)" class="fa fa-3x fa-play"></div>
  </div>
  <div class="gs-player">
    <div id="gs3" onclick="play(315363199)" class="fa fa-3x fa-play"></div>
  </div>
</div>

当我点击它们时,我想做的是:

  1. 删除所有事件类(我使用fa-pause)
  2. 切换类 fa-pause 我点击的 div

我是这样做的:

$(document).ready(function() {
    $('.fa-play').click(function () {
      $('.fa-pause').removeClass('fa-pause'); 
      $(this).toggleClass('fa-pause');          
    });
});

基本上它除了切换功能外工作正常,它看起来更像是一个 addClass。如果我再次点击事件的 div,它不会删除 fa-pause

JSFiddle 中的行为更清晰。

还有,有没有办法不用框架就可以做到这一点?

最佳答案

您正在删除该类,然后将其重新打开。添加 .not(this),以避免这种情况。它将确保修改的元素不会是当前被点击的元素。

$(document).ready(function() {
    $('.fa-play').click(function () {
      $('.fa-pause').not(this).removeClass('fa-pause'); 
      $(this).toggleClass('fa-pause');          
    });
});

function play () {}; //remove this line, I used this just to avoid error (because we don't have your full code).
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" />

<div>
  <div class="gs-player">
    <div id="gs1" onclick="play(309689093)" class="fa fa-3x fa-play"></div>
  </div>
  <div class="gs-player">
    <div id="gs2" onclick="play(316017522)" class="fa fa-3x fa-play"></div>
  </div>
  <div class="gs-player">
    <div id="gs3" onclick="play(315363199)" class="fa fa-3x fa-play"></div>
  </div>
</div>

关于jquery - 切换类不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43287330/

相关文章:

javascript - KnockoutJs 计算 - 'Is not a function'

jquery - Font Awesome 百分比星形图标

css - 在不同的浏览器中呈现 CSS 而不是单独安装每个浏览器的有用程序?

javascript - Google map (gmap3 插件),点击时淡出叠加

css - 向一个元素添加无限平移和旋转(以不同速度)动画

asp.net-mvc - CSS 未应用于 jQuery UI 对话框

jquery - Wordpress 下拉菜单在页面加载时出现

javascript - DOM 元素中有多少溢出

HTML 页面的 JavaScript 下拉面板

javascript - 网页永远不会停止加载