2009-10-18 55 views
0

代碼如下:如何顯示/隱藏相似的塊內的相同的塊用jQuery

<div class="mama"> 
    <div class="son">Item 1</div> 
</div> 
<div class="mama"> 
    <div class="son">Item 2</div> 
</div> 

$(".mama").hover(
    function() { 
     $(".son").show(); 
    }, 
    function() { 
     $(".son").hide(); 
    } 
); 

上前幫忙。謝謝!

+1

你可以包含一些上下文/現有的代碼?沒有它,你的問題就沒有意義了!! – richsage 2009-10-18 15:35:08

回答

0

使用hover()事件,只是範圍的行動的相關要素:

$("div.mama").hover(function() { 
    $(this).find("div.son").show(); 
}, function() { 
    $(this).find("div.son").hide(); 
}); 

有關於如何限制這只是受影響的元素的兒童許多變化。

+0

這非常積極和容易理解。非常感謝你! – anhtran 2009-10-19 09:14:30

1

如果你問如何只隱藏每個「.mama」塊裏面的「.son」塊,那麼它會是這樣的:

$('.mama').each(function() { 
    var mama = $(this); 
    mama.hover(
    function() { mama.find('.son').show(); }, 
    function() { mama.find('.son').hide(); } 
); 
}); 
+0

這不需要增加複雜性。看到我的答案。 – cletus 2009-10-18 16:09:56

+0

如果我們這樣做: ... $('.mama')... 只是第一個塊才生效。我們必須這樣做: ... $(「div.mama」)... 謝謝! – anhtran 2009-10-19 09:18:50

1

如果你正在做的是顯示或隱藏內容,你不需要jQuery。 CSS已經有這個功能

.mama .son { 
     display:none; 
} 

.mama:hover .son { 
     display:block; 
} 
+0

IE6不支持:懸停在非錨點上。 – cletus 2009-10-18 16:09:26

+0

我只是舉一個簡單的例子來解釋使用JQuery的其他複雜問題。謝謝! – anhtran 2009-10-19 09:00:15