Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery显示和隐藏菜单_Javascript_Jquery_Css_Html - Fatal编程技术网

Javascript 使用jquery显示和隐藏菜单

Javascript 使用jquery显示和隐藏菜单,javascript,jquery,css,html,Javascript,Jquery,Css,Html,我想,当点击菜单图标改变为一个带有动画的X形状,当点击X形状它改变为菜单图标 我写这部分。我有点击功能的问题。起初,当我点击菜单按钮时,它会变成X形状并显示菜单,但当我想关闭菜单时,我的js代码不起作用,我不知道为什么会发生这种情况。 我在代码中使用了引导 我上传我的网站 html css 使用$('.navbar toggle')。单击(函数(){ 而不是$('.navbar toggle span')。单击(函数(){ 您实际上是在向同一元素添加两个单击处理程序。当您单击span元素时,将执

我想,当点击菜单图标改变为一个带有动画的X形状,当点击X形状它改变为菜单图标

我写这部分。我有点击功能的问题。起初,当我点击菜单按钮时,它会变成X形状并显示菜单,但当我想关闭菜单时,我的js代码不起作用,我不知道为什么会发生这种情况。 我在代码中使用了引导 我上传我的网站

html

css

使用
$('.navbar toggle')。单击(函数(){
而不是
$('.navbar toggle span')。单击(函数(){

您实际上是在向同一元素添加两个单击处理程序。当您单击
span
元素时,将执行第二个处理程序,当
单击事件传播时,将执行第一个
单击
处理程序

您应该更改逻辑。与使用
addClass
/
removeClass
和两个处理程序不同,您只需使用一个单击处理程序,然后使用
toggleClass
方法切换类名

$('.try-op').click(function() {
    var isOpened = $('.menu').toggleClass('opened').hasClass('opened');
    if ( isOpened ) {
      // the menu is opened 
    } else {
      // ...
    }
});
另一个选项是使用事件委派技术。我看到您正在删除第一个处理程序中的类名,可能是为了在下一次单击处理中解除处理程序的绑定,但是事件处理程序绑定到元素而不是它们的类名

$(document).on('click', '.navbar-toggle.open', function() {
   $(this).removeClass('open').addClass('close');    
   // ...
});

$(document).on('click', '.navbar-toggle.close', function() {
   $(this).removeClass('close').addClass('open');    
  // ...
});

是否尝试使用$('.navbar toggle')。单击(函数(){而不是$('.navbar toggle span')。单击(函数(){你能提供一个吗?@JayPatel是的,我测试了,但没有答案。我更新了我的jscodes@Vohuman在fiddle中,我将替换我的代码,让您非常清楚。如果您愿意,我可以给您github存储库地址。代码的漏洞就在那里。好吧,我明白您的意思,但我该怎么做?我最近开始学习js,所以我在这方面没有经验。@mimi Khahesh mikonam:)在哈姆的名声中,切赫卜克和伊拉尼是勇敢的。巴德是胡什哈利的巴德。@mimi Ghorbane shoma!玛南·霍什哈尔·舒达姆是哈姆沙里·奥图耶·苏米比南,他是我的朋友。
.icon-bar{

    transition: 0.6s ease;
    transition-timing-function: cubic-bezier(.75, 0, .29, 1.01);

}
.top-animate {
    background: #fff !important;
    top: 13px !important;
   -webkit-transform: rotate(43deg);
    transform: rotate(43deg);
    transform-origin: 7% 100%;
    -webkit-transform-origin: 7% 100%;
}
.mid-animate {
    opacity: 0;
}
.bottom-animate {
    background: #fff !important;
    top: 13px !important;
    -webkit-transform: rotate(-221deg);
    transform: rotate(-221deg);
    transform-origin: 45% 18%;
    -webkit-transform-origin: 45% 18%;
     margin-top: 0px !important;
 }
.bazar-green, .bazar {
  color: #fff;
  display: block;
  font-size: 20px;
  position: absolute;
  right: 80px;
  top: 5px;
  line-height: 43px;
  background: url(image/bazarlogo.png) no-repeat left center;
  padding-left: 80px;
  z-index: 401;
}


.navbar-toggle {
    display: block;
    position: absolute;
    right: 0px;
    top: 0px;
}

.navbar-toggle{
float: right;
padding: 9px 10px;
margin-top: 8px;
margin-right: 15px;
margin-bottom: 8px;
background-color: transparent;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
}

.navbar-toggle .icon-bar {
 background-color: #fff;
}
.navbar-toggle .icon-bar {
 display: block;
 width: 22px;
 height: 2px;
 border-radius: 1px;
}
.menu {
width: 300px;
position: absolute;
z-index: 400;
background: rgba(0,0,0,0.7);
padding: 10px 30px;
text-align: right;
color: #fff;
font-size: 17px;
transition: all 1s;
right: -316px;
}
.btnClose {
color: #fff;
font-size: 30px;
cursor: pointer;
z-index: 500;
}
$('.try-op').click(function() {
    var isOpened = $('.menu').toggleClass('opened').hasClass('opened');
    if ( isOpened ) {
      // the menu is opened 
    } else {
      // ...
    }
});
$(document).on('click', '.navbar-toggle.open', function() {
   $(this).removeClass('open').addClass('close');    
   // ...
});

$(document).on('click', '.navbar-toggle.close', function() {
   $(this).removeClass('close').addClass('open');    
  // ...
});