如果再次单击,则更改类

时间:2013-11-07 12:08:43

标签: jquery list onclick

我把一个剧本拼凑成手风琴。现在我有以下问题,活动元素成为类。“。active”与.click(function(),但如果我再次单击活动元素,它不会删除该类。我已经尝试了很多解决方案并阅读像这样的问题:Question 1但没有任何作用......

在这里你可以找到我的代码的小提琴:

$(function() {
   $("a.dropdown-link").click(function() {
      $("a.dropdown-link").removeClass("active");
      $(this).addClass("active");
      return false;
   });
});  

JSfiddle

如果有任何不清楚的地方,请告诉我。

4 个答案:

答案 0 :(得分:1)

您需要检查点击的元素是否已经有active类并将其删除,否则您需要添加它。试试这个:

$("a.dropdown-link").click(function (e) {
    e.preventDefault();
    var func = $(this).hasClass('active') ? 'removeClass' : 'addClass';
    $("a.dropdown-link").removeClass("active");
    $(this)[func]("active");
});

Example fiddle

答案 1 :(得分:0)

请替换此功能:     $(function(){

  $("a.dropdown-link").click(function() {

  var class_anchor = $(this).attr('class');
   if(class_anchor == "dropdown-link active")
   {
       $("a.dropdown-link").removeClass("active");
   }else
   {
         $(this).addClass("active");
   }         
   return false;

   });
});

答案 2 :(得分:0)

你也可以这样做

  $("a.dropdown-link").click(function() {
      $("a.dropdown-link").not(this).removeClass("active");
   $(this).toggleClass("active");
      return false;

   });

小提琴http://jsfiddle.net/code_snips/n6tZm/3/

答案 3 :(得分:-1)

也许你只需要使用toggleClass而不是删除和添加?

$(function() {
 $("a.dropdown-link").click(function() {
        $(this).toggleClass("active");
    return false;
  });
});  

似乎要解决它。