Javascript 如何使按钮同时具有打开和关闭功能?

Javascript 如何使按钮同时具有打开和关闭功能?,javascript,jquery,html,css,hamburger-menu,Javascript,Jquery,Html,Css,Hamburger Menu,我想对已应用打开状态的同一个汉堡按钮应用关闭状态。关闭状态已应用于其他位置的另一个按钮。。但我不想改变这一点。我只想复制打开按钮上的关闭状态 $(函数(){ $('.menu')。单击(函数(){ $('#css menu').css({右:'0'}); }); $('.close menu')。单击(函数(){ $(#css menu').css({右:'-340px'}); }); }); 如果有任何帮助,我将不胜感激 提前感谢…您有点不清楚,但我想您的意思是希望使用JQuery的t

我想对已应用打开状态的同一个汉堡按钮应用关闭状态。关闭状态已应用于其他位置的另一个按钮。。但我不想改变这一点。我只想复制打开按钮上的关闭状态


$(函数(){
$('.menu')。单击(函数(){
$('#css menu').css({右:'0'});
});
$('.close menu')。单击(函数(){
$(#css menu').css({右:'-340px'});
});
});

如果有任何帮助,我将不胜感激


提前感谢…

您有点不清楚,但我想您的意思是希望使用JQuery的toggleClass,或者,我会使用一个单击记录,检查计数是偶数还是奇数:打开还是关闭

$(function() {  
    var clickCount = 0;
    $('.menu').click(function () {
        if(clickCount%2==0){
              //do when open
               $('#css-menu').css({right:'0'});
        }else{
             //do when closed
             $('#css-menu').css({right:'-340px'});
         }
        clickCount++;
    });
});

希望这能有所帮助。

无需注册新变量和计算点击次数。 只需添加/删除不存在的类“clicked”,并在单击时进行测试 如果元素“被”单击

$(函数(){
$('.menu')。单击(函数(){
如果($(this).is('.clicked')){
$(this.css({left:0})
.removeClass('clicked');
}否则{
$(this.css({left:20})
.addClass(“单击”);
}
});
});


下面是toggleClass的一个示例。单击特定的
  • 将仅切换该
  • 的状态

    使用
    this.toggleClass()
    引用正在单击的元素

    $(函数(){
    $('.menu')。单击(函数(){
    $(this.toggleClass('open');
    });
    });
    
    liul{
    显示:无;
    }
    李开复{
    显示:块;
    }
    李:悬停{
    光标:指针;
    颜色:红色;
    }
    
    
      菜单1
      • 分项1.1
      • 分项目1.2
      • 分项目1.3
      菜单2
      • 分项2.1
      • 分项2.2
      • 分项2.3

    创建两个类,其中一个是显示状态,另一个是隐藏状态 为类定义CSS

    #css-menu.hidden{
    右:-340px;
    }
    #css-menu.show{
    右:0;
    }
    
    假设类别显示=显示。
    类隐藏=隐藏

    将显示的(默认)类添加到元素中 类='隐藏'

    Then your script
    
    
    
      $('.menu').click(function(){
        $('#css-menu').toggleClass('shown hidden');
        });
    

    查看
    toggleClass
    -尝试
    this.toggleClass()
    引用正在单击的元素。通过这样设置
    left
    ,您将触发在浏览器的关键渲染路径中重建布局,这是一个潜在的性能问题。小心这个!与上述注释相同^^^^属性
    left
    right
    触发在浏览器的关键渲染路径中重建布局。这就完成了任务。。但是我必须添加$('.close menu').click(function(){$('#css menu').css({right:'-340px'});});保持前者的响应性