打开和关闭或返回,如果已经打开导航

问题描述:

我有一个导航点击我扩大它,但如果它已经扩大,我们再次点击该项目它不应该做任何事情(返回)。我有这个代码,但它不能正常工作,目前如果我点击它扩展它的项目,但如果我再次点击它关闭导航,如果我再次点击它扩展它,但它表现得很有趣。我基本上只需要能够点击并打开,如果已经打开,什么也不做,因为无论如何我都会有一个关闭按钮。 p.s. “item”是我在代码中定义的一个var。打开和关闭或返回,如果已经打开导航

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"); 
    }); 
}); 

有人吗?

+0

请做一个http://jsfiddle.net的例子! – 2012-02-16 11:24:47

你应该或检查div隐藏未再使用slideDown

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

看看这个在行动的jsfiddle example

+0

谢谢你! :) – 2012-02-16 11:56:03

检查股利已经openened,这样±

item.click(function(e) { 
    e.preventDefault(); 
    if ($(".wrapSubContent").is(":visible")) { 
    return 
    } 
     $(".wrapSubContent").slideToggle("slow", "linear", function(){ 
      $(".wrapNavtoShowHide").slideToggle("slow", "linear"); 
     }); 
}); 

或者:

item.click(function(e) { 
    e.preventDefault(); 
    if ($(".wrapSubContent:visible").length > 0) { 
    return 
    } 
     $(".wrapSubContent").slideToggle("slow", "linear", function(){ 
      $(".wrapNavtoShowHide").slideToggle("slow", "linear"); 
     }); 
});