Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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 切换类重叠_Javascript_Jquery - Fatal编程技术网

Javascript 切换类重叠

Javascript 切换类重叠,javascript,jquery,Javascript,Jquery,我尝试使用相同的按钮来打开和关闭菜单,我相信这非常简单,但我对jQuery的世界还不熟悉。如果有帮助的话,我正在使用Wordpress builder的“氧气”。这是我的密码: 模态是网站生成器中的一个内置功能,所以我不能提供太多关于它的代码。它基本上设置为在单击类为“open”的元素时触发,然后单击类为“oxy modal close”的元素时关闭 jQuery jQuery("#toggle").click(function () { jQuery('#plus').to

我尝试使用相同的按钮来打开和关闭菜单,我相信这非常简单,但我对jQuery的世界还不熟悉。如果有帮助的话,我正在使用Wordpress builder的“氧气”。这是我的密码:

模态是网站生成器中的一个内置功能,所以我不能提供太多关于它的代码。它基本上设置为在单击类为“open”的元素时触发,然后单击类为“oxy modal close”的元素时关闭

jQuery

jQuery("#toggle").click(function () {
jQuery('#plus').toggleClass('rotate');
jQuery('#toggle').toggleClass('open oxy-modal-close');
});
HTML

基本上,在第二次单击时,类正在重新添加类“open”,这会导致菜单闪烁,因为这两个操作相互冲突。这里有视频-

我尝试过在“打开”类中添加延迟,但由于某种原因,延迟只在第一次单击时起作用——第二次单击时,它会立即更改类。这就是我正在尝试的代码

jQuery("#toggle").click(function () {
jQuery('#plus').toggleClass('rotate');
jQuery('#toggle').toggleClass('oxy-modal-close');
  
        var el = jQuery("#toggle");
    window.setTimeout(function() {
        el.toggleClass('open');
    }, 500); 
  
});

您正在单击中再次引用id-您需要引用$(此)。。。要在屏幕上切换类,请单击

此外,您需要从其中一种状态开始—这样,每次单击时,它都可以根据代码段将类切换到另一种状态(根据样式,交叉图标位于代码段窗口的右侧)—现在,当您单击它时,它将按预期旋转

$(“#切换”)。单击(函数(){
$('#plus')。toggleClass('rotate');
$(this.toggleClass('open-oxy-model-close');
});
#plus{
-moz跃迁:变换1s;
-webkit转换:转换1s;
转换:转换0.3s;
宽度:35px;
位置:固定;
顶部:20px;
右:20px;
}
.轮换{
变换:旋转(45度);
}


您能提供更多详细信息吗?你有HTML页面或一些代码要显示吗?@ManedWolf刚刚更新了帖子,希望这足够了?啊,我在我的网站上为div分配了“open”类,只是忘了在我的文章中包含它。我已经按照你的建议修改了我的代码以包括(这个)。还是没有变化。在第二次单击时,它开始关闭模式,然后再次重新打开。我认为这确实需要一些延迟。这是正在发生的事情的gif-干杯
#plus {
  -moz-transition: transform 1s;
  -webkit-transition: transform 1s;
  transition: transform 0.3s;
  width: 35px;
  position: fixed;
  top: 20px;
  right: 20px;
}

.rotate {
  transform: rotate(45deg);
}
jQuery("#toggle").click(function () {
jQuery('#plus').toggleClass('rotate');
jQuery('#toggle').toggleClass('oxy-modal-close');
  
        var el = jQuery("#toggle");
    window.setTimeout(function() {
        el.toggleClass('open');
    }, 500); 
  
});