1

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

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

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

JSfiddle

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

4

4 回答 4

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");
});

示例小提琴

于 2013-11-07T12:12:58.800 回答
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/

于 2013-11-07T12:21:58.060 回答
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;

   });
});
于 2013-11-07T12:19:05.477 回答
-1

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

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

似乎可以修复它。

于 2013-11-07T12:13:37.880 回答