将鼠标悬停更改为在菜单上单击

时间:2020-05-28 作者:Lulzsec

我在WP上有一个使用DIVI的本地网站,其中标题菜单有一些“菜单项有子项”。

为了查看这些子菜单,我只需将鼠标悬停在它上,当鼠标移出子菜单时,子菜单就会消失。

我的问题是,我只想在click 我希望它们保持打开状态,直到我再次单击它来关闭它。

我已经浏览了大多数StackOverflow线程,但找不到方法。我找到的最接近的代码是这个;

jQuery(document).ready(function ($) {
    $(".sub-menu").hide();
    $(".current_page_item .sub-menu").show();
    $("li.menu-item").click(function () { // mouse CLICK instead of hover
        // Only prevent the click on the topmost buttons
        if ($(\'.sub-menu\', this).length >=1) {
            event.preventDefault();
        }
        $(".sub-menu").hide(); // First hide any open menu items
        $(this).find(".sub-menu").show(); // display child
        event.stopPropagation();
    });
});
此代码对我的本地网站的作用:
-当我单击菜单“A”时,它会打开,但不会保持打开状态,因为当我鼠标移出时,它会关闭-当我单击菜单“A”时,例如要单击“B”菜单时,会出现一个问题,即“A”返回到“悬停”,而其他所有菜单仍处于“onclick”状态

我很迷茫,如果你们不想给我密码,没关系,只要解释一下就够了

提前感谢,

1 个回复
最合适的回答,由SO网友:Lulzsec 整理而成

刚刚找到了怎么做。

解决方案非常简单,只需在我在主要问题中处理的同一个对象上玩“slideToggle”函数

只有一个问题不会消失,如果单击一次,然后鼠标退出,子菜单将通过悬停打开。如果你不想发生这样的事情,你必须通过第二次点击来强制它。(如果我找到了方法,我会把它贴在网上,以供其他人使用,但如果有人知道,我会接受!)