javascript - 事件链接不会在点击时切换。怎么解决?

标签 javascript jquery html css

我正在制作一个汉堡包样式的菜单图标,我想在点击时将其设置为“x”,然后让用户再次点击它以使其返回。但是,如果您单击并按住它,该图标只会一直动画。

我用来尝试切换事件类的脚本不起作用。

我该如何解决?

HTML:

<a id="nav-toggle" href="#"><span></span></a>

CSS:

#nav-toggle span, #nav-toggle span:before, #nav-toggle span:after {
  cursor: pointer;
  border-radius: 1px;
  height: 5px;
  width: 35px;
  background: black;
  position: absolute;
  display: block;
  content: '';
}
#nav-toggle span:before {
  top: -10px; 
}
#nav-toggle span:after {
  bottom: -10px;
}

#nav-toggle span, #nav-toggle span:before, #nav-toggle span:after {
  transition: all 500ms ease-in-out;
}
#nav-toggle:active span {
  background-color: transparent;
}
#nav-toggle:active span:before, #nav-toggle:active span:after {
  top: 0;
}
#nav-toggle:active span:before {
  transform:rotate(45deg); -ms-transform:rotate(45deg); -webkit-transform:rotate(45deg);
}
#nav-toggle:active span:after {
  transform:rotate(-45deg); -ms-transform:rotate(-45deg); -webkit-transform:rotate(-45deg);
}

jQuery:

$(document).ready(function(){
  $('#nav-toggle').click( function() {
    if($(this).hasClass('active')) {
      $(this).removeClass('active');
    } else {
      $(this).addClass('active');
    }//
  });
});

这里还有 jsFiddle

最佳答案

替换

:active 

.active

在你的 CSS 中

Demo with your code

关于javascript - 事件链接不会在点击时切换。怎么解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23863593/

相关文章:

javascript - 当您更改屏幕分辨率时,有没有办法在 bootstrap 3 上订购两个 div : image, 和文本?

javascript - 设置固定元素的最大高度

Javascript setTimeout 运行两次?

html - CSS - Bootstrap 选择下拉样式颜色

javascript - Array.push() 与对象

javascript - 有中点椭圆算法吗?

javascript - React.js 和 HTML5 电子邮件验证

jquery.validate 失败并显示 "a is null"

javascript - 在同一行Javascript中动态添加下拉菜单和文本框

javascript - 如何使光标移动到按钮上并依次突出显示它们。使用像 .each 和 mouseenter 这样的 Jquery 方法