javascript - 如果已经打开导航,则打开并关闭或返回

标签 javascript jquery

我有一个导航,点击它我会展开它,但如果它已经展开并且我们再次点击该项目它不应该做任何事情(返回)。我有这段代码,但它无法正常工作,目前如果我单击该项目,它会展开它,但如果我再次单击它会关闭导航,如果我再次单击它会展开它,但它的行为很有趣。我基本上只需要能够单击并打开,如果已经打开则什么也不做,因为无论如何我都会有一个关闭按钮。 附: “item”是我之前在代码中定义的一个变量。

var item = $(".nav a");
<div class="nav">
    <a href="#">Trigger</a>
    <div class="wrapSubContent">
         <div class="wrapNavtoShowHide">
            ..content..
         </div>
     </div>
</div>

item.click(function(e) {
    e.preventDefault();
    $(".wrapSubContent").slideToggle("slow", "linear", function(){
        $(".wrapNavtoShowHide").slideToggle("slow", "linear");
    });
});

有人吗?

最佳答案

您应该检查div 是否隐藏,然后使用slideDown

var item = $(".nav a");
$(".wrapNavtoShowHide").hide();
item.click(function(e) {
    e.preventDefault();
    if ($(".wrapNavtoShowHide").is(":hidden")) {
        $(".wrapNavtoShowHide").slideDown("slow", "linear");
    }
});

看看 jsfiddle example这在行动中。

关于javascript - 如果已经打开导航,则打开并关闭或返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9310368/

相关文章:

javascript - 在显示/隐藏条件下显示不同的 div

javascript - 从 div 中加载的子 HTML 链接回父 HTML

jquery - 使用 div 进行类似表格的布局,如何使用 CSS 或 jQuery 突出显示某些 div

javascript - 清除内容后图像不会显示

javascript - 迭代选择的 DOM 元素

javascript - 在 jquery 警报内容中循环

javascript - GZip 完整的 ASP.NET 网站

javascript - 破坏bootbox

javascript - 为什么 jQuery 脚本可以在 jFiddle 上运行,但不能在我的本地机器上运行?

javascript - 将 JSON 字符串解析为 HTML5 代码的更快方法