javascript - 如何更改单击时按钮的类别

标签 javascript jquery

我正在尝试更改单击时按钮的图标。

使用以下代码,我成功地在第一次单击时更改了图标,但再次单击时它不会变回来。

HTML

<button class="toggle-button custom-navbar-toggle">
    <i class="material-icons">menu</i>
</button>

JS

$('.custom-navbar-toggle').click(function(){
    var $this = $(this);
    if($this.hasClass('not-clicked')){
        $this.html('<i class="material-icons clicked">menu</i>'); 

    } else {
        $this.html('<i class="material-icons not-clicked">check</i>'); 

    }
});

如何让按钮再次点击后变回来?

最佳答案

更好的方法是 addClass()removeClass()如下所示:-

$('.custom-navbar-toggle').click(function(){
    if($(this).children('i').hasClass('not-clicked')){
        $(this).children('i').removeClass('not-clicked').addClass('clicked').html('menu'); 
    } else {
        $(this).children('i').removeClass('clicked').addClass('not-clicked').html('check'); 
    }
});

示例:-

$('.custom-navbar-toggle').click(function(){
  if($(this).children('i').hasClass('not-clicked')){
      $(this).children('i').removeClass('not-clicked').addClass('clicked').html('menu'); 
  } else {
      $(this).children('i').removeClass('clicked').addClass('not-clicked').html('check'); 
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button class="toggle-button custom-navbar-toggle">
  <i class="material-icons">menu</i>
</button>

注意:- 您的初始代码正在向子级添加类 <i> ,所以你还必须检查 child 本身的类(class),而不是按钮。

所以你必须像下面这样做:-

$('.custom-navbar-toggle').click(function(){
    if($(this).children('i').hasClass('not-clicked')){
        $(this).html('<i class="material-icons clicked">menu</i>'); 
    } else {
        $(this).html('<i class="material-icons not-clicked">check</i>'); 
    }
});

示例:-

$('.custom-navbar-toggle').click(function(){
  if($(this).children('i').hasClass('not-clicked')){
      $(this).html('<i class="material-icons clicked">menu</i>'); 
  } else {
      $(this).html('<i class="material-icons not-clicked">check</i>'); 
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="toggle-button custom-navbar-toggle">
  <i class="material-icons">menu</i>
</button>

关于javascript - 如何更改单击时按钮的类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45926134/

相关文章:

javascript - Express JS 的 session.generate() 函数的源代码在哪里?

javascript - 如何将流体宽度视频与 Parallax 网站合并?

javascript - 单击具有相同类的元素

javascript - 使用 momentjs 计算到特定日期的天数

javascript - 如何使用 jquery/javascript 使光标保持为文本上的指针?

javascript - 使用 Javascript 创建 <link> 元素,然后将其添加到 <head> 部分

c# - 通过 jQuery 从发布请求的部分 View 中检索数据

javascript - 通过 Javascript 上传 HTML 文件预览

javascript - Slick Carousel 上的 Twitter Bootstrap 工具提示

(博主)帖子中的 JavaScript/jQuery 代码?