我在这里遇到问题。我有两个要素。一个是按钮,另一个是菜单。我需要解决第一次单击按钮时菜单会打开的问题,但是第二次单击时却没有。当我在菜单外单击时,它关闭(很好!)。因此,我需要使用单击按钮并在元素外部单击来关闭/打开元素。
这是我的代码:
$(".left-menu-block-one").click(function () {
$("#first-bar").toggleClass("show");
if ($("#second-bar").hasClass("show") || $("#third-bar").hasClass("show")) {
$("#second-bar").removeClass("show");
$("#third-bar").removeClass("show");
}
$(".left-menu-block-one").toggleClass("hide-menu-bars");
if ($("#first-bar").hasClass("show")) {
$(".left-menu-block-two").addClass("hide-menu-bars");
$(".left-menu-block-three").addClass("hide-menu-bars");
}
})
var container2 = $("#first-bar");
if (!container2.is(e.target) && container2.has(e.target).length === 0)
{
$("#first-bar").removeClass("show");
$(".left-menu-block-one").addClass("hide-menu-bars");
}
P.S。我添加了这两个元素的所有代码,因为也许它们有问题...
答案 0 :(得分:0)
从概念上讲:
当用户单击按钮时,您的代码将在显示和隐藏之间切换弹出/元素。 (您的代码可能已经做到了。)
当弹出窗口/元素更改为显示时,然后使用“ capture”模式在document
上添加点击事件侦听器。
在此新事件处理程序中: