2011-07-07 136 views
1

我想寫一些關於jquery菜單的腳本。我的問題是,jQuery的hide()函數不工作。我的代碼:jquery菜單腳本。隱藏()不工作

<head> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#topmenu ul li').mouseover(function(){ 
      $('#topmenu ul li').removeClass('show'); 
      $('.child').hide(); 
      $(this).addClass('show'); 
      var currentTab = $(this).attr('id').replace("parent", "#child"); 
      $(currentTab).addClass('showtab'); 
      $(currentTab).show(); 
      return false; 
     }); 
     $('#topmenu ul li').mouseout(function(){ 
      var currentParent = $(this).attr('id').replace("parent", "#parent"); 
      var currentTab = $(this).attr('id').replace("parent", "#child"); 
      $(currentTab).hide(); <---- this not works 
      if ($(currentTab).hasClass('showtab')) { 
       $(currentTab).show(); 
       $(currentTab).mouseout(function(){ 
        /*alert($(this).height());*/ 
        $(this).removeClass('showtab'); 
        $(currentParent).removeClass('show'); 
        $(this).hide(); 
       }); 
      } 

      return false; 
     }); 

    }); 
</script> 
</head> 


<div class="wrapper"> 
    <div id="topmenu"> 
     <ul> 
      <li id="parent1" class="parent first">First</li> 
      <li id="parent2" class="parent">second</li> 
      <li id="parent3" class="parent">third</li> 
      <li id="parent4" class="parent">fourth</li> 
      <li id="parent5" class="parent">fift</li> 
      <li id="parent6" class="parent last">sixt</li> 
     </ul> 
     <div id="child1" class="child"> 
       blah blah blah 1   
     </div> 
     <div id="child2" class="child"> 
       blah blah blah 2        
     </div> 
     <div id="child3" class="child"> 
       blah blah blah 3 
     </div> 
     <div id="child4" class="child"> 
       blah blah blah 4 
     </div> 
     <div id="child5" class="child"> 
       blah blah blah 5  
     </div> 
     <div id="child6" class="child"> 
       blah blah blah 6 
     </div> 
    </div> 
</div> 
+0

我注意到你已經編輯過來改變標題來表明這已經解決了。你應該做的是接受正確的答案,或者回答自己並接受,如果沒有給出的答案是正確的。那麼這會將問題標記爲正確回答。 – sclv

回答

0

好吧。你沒有在任何地方加載jquery。

<script src="jquery.js"></script> 

似乎在您實際加載庫時工作正常。 :)

1

.hide工作正常,但只是兩行後(在if內)你立即show它再次。

整個if ($(currentTab).hasClass('showtab')) {塊很混亂。它應該做什麼?重複分配另一個mouseover而不刪除它是一件壞事。一段時間後,選項卡將有數十個處理程序分配給它們。

當你離開整個if塊時,它工作正常。