2012-06-29 62 views
2

這裏是我的腳本:哈弗DIV jQuery的

<body> 
    <div id ="mainCategory" class='fade'> 
     Category</div> 
    <div id="divSubCategory"> 
     Category1 
     <br /> 
     Category2 
    </div> 
    <script type="text/javascript"> 
     $("div").hover(
      function() { 
       $(this).append($("#divSubCategory").html()); 
      }, 
      function() { 
       $("#divSubCategory").remove(); 
      } 
     ); 
     $("#divSubCategory.fade").hover(function() { $(this).fadeOut(100); $(this).fadeIn(500); }); 

    </script> 
</body> 

我要顯示和隱藏divSubCategory上mainCategory懸停。但它不起作用。我應該添加什麼?

回答

8
$(document).ready(function(){ 
    $('#mainCategory').bind('mouseenter', function() { 
     $('#divSubCategory').fadeIn(); 
    }); 
    $('#mainCategory').bind('mouseleave', function() { 
     $('#divSubCategory').fadeOut(); 
    }); 
}); 
+0

它的作品,但我想隱藏子類別時,鼠標離開主類別。這將鼠標放在主類別上時隱藏子類別。 – cagin

+0

這個問題是'div#divSubCategory'沒有包含在'div#mainCategory'中,因此當你試圖將鼠標放在div的'divSubCategory'上時div就會隱藏。如果這是菜單系統(例如),那麼這對你不起作用,因爲你也需要'div#divSubCategory'來顯示。 –

+0

尼克。 – cagin

-3

包裝你的代碼的document.ready()函數中

$(document).ready(function(){ 
    // Your code here 
}); 
+0

這不應該是作爲代碼的HTML後寫的問題。 –

+0

@Chris它不起作用。 – cagin

+0

@ThomasClayson,我有html標籤只是沒有coppy到這裏。 – cagin

2

好哥們的問題是,你正在使用.html()。這複製內部html(不外部<div id="divSubCategory"></div>位...只是在中間的位

因此,當你做​​其刪除HTML中的實際div,而不是你已經移動的HTML進入上面的div

假設你有display: none#divSubCategory你會看到該div的文本會追加到第一個div,那麼當你將鼠標移出它不會消失(儘管第二個(隱藏的)div會得到刪除)

無論如何,這個方法是使用clone()。我會爲你做一個小提琴:

http://jsfiddle.net/fZZu5/1/

我也修復了你的褪色。

編輯:這將div#divSubCategory移動到div#mainCategory之前顯示它,然後將其從鼠標移出完全從那裏刪除 - 這是我認爲你想要從你的代碼做的。尼克斯只是顯示並隱藏它在哪裏。根據你想要的,這兩個答案都是正確的。 :)