如果已经存在,则使用toggleClass删除一个类

时间:2014-05-15 12:01:42

标签: jquery

如果使用toggleClass

已经存在的类,如何删除它
$('.mobile_billing').toggleClass('open');

我有一个场景,我们使用上面的代码来扩展和折叠手风琴。折叠和展开有两种选择:

  1. 来自手风琴箭头

  2. 来自Check BOX。

  3. 当用户点击Check Box并且Accordion已经展开时无需任何操作。如果Accordion处于Collpase状态,想打开它。

    我尝试了上面的代码,它打开或关闭。它不会检查是否已打开。有人可以帮忙吗

3 个答案:

答案 0 :(得分:1)

你需要为复选框和手风琴

写两个单独的事件

假设复选框id=checkbox

$("#checkbox").click(function(){      
   if(!$('.mobile_billing').hasClass('open')) // it checks if mobile_billing is not open
     $('.mobile_billing').addClass('open');
});

和 假设手风琴有id=accordian

 $("#accordian").click(function(){

         $('.mobile_billing').addClass('open');
 });

答案 1 :(得分:0)

click on the checkbox检查手风琴是否打开时,如果return处于打开状态function。否则切换动作。

$('#checkboxId').on('click',function(){
  if($('.mobile_billing').hasClass('open')) return;

  $('.mobile_billing').toggleClass('open');
})

答案 2 :(得分:0)

你可以这样做:

$( '.accordion_checkbox' ).click( function() { 
  $( '.mobile_billing' ).toggleClass( 'open', this.checked );
});

因此,只有在选中复选框时才会添加“打开”,并在用户取消选中时将其删除。当用户点击复选框时,它是否已经打开是无关紧要的;它会保持开放。这是使用jQuery.toggleClass's switch option并检查您将点击事件附加到的复选框的checked (boolean) value