2012-02-16 9 views
1

私はそれを展開するナビゲーションを持っていますが、すでに展開されている場合は再び項目をクリックします。私はこのコードを持っていますが、正しく動作していません。現在、アイテムをクリックすると展開しますが、もう一度クリックするとnavが閉じられ、もう一度クリックすると、展開されますが、それは面白いです。私は基本的には、クリックして開くことができるようにする必要があります。 p.s. "item"は前にコードで定義されたvar iです。すでに開かれている場合は開閉します。

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の例を作成してください! –

答えて

2

divが非表示か、その後slideDownを使用している場合は、チェックする必要があります。

この措置のjsfiddle exampleをご覧ください。

+0

感謝の男! :) –

1

チェックこれは

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

または±ようにdiv要素は既に、openenedされている場合:

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