2013-12-18 78 views
1

我有這樣的結構:哈弗的父元素和所有的孩子

<div id="parent"> 
    <div class="children">Child 1</div> 
    <div class="children">Child 2</div> 
    <div class="children">Child 3</div> 
    <div class="children">Child 4</div> 
</div> 

在jQuery中,我希望它這樣,當你將鼠標懸停在「父母」(包括「孩子」),「父母在任何地方「周圍有一個白色的邊框。這是我目前有:

$("div#parent").hover(function(){ 
    $(this).css("border-color", "white"); 
}); 
$("div#parent").mouseOut(function(){ 
    $(this).css("border-color", "black"); 
}); 

該代碼的問題是,如果你在孩子鼠標,它通常不會再變成黑色。另外,由於孩子們的原因,有時候似乎不能解決懸停問題。

我希望這個工作非常乾淨,沒有錯誤。可以做什麼?

謝謝你的幫助! :)

+1

'.hover'已經包括'mouseenter'和'mouseleave' ... –

+0

感謝您的答覆。我將如何使用這些?你能給我一個代碼示例嗎? –

+1

'$(「div」)。hover(function(){/ * mouse in * /},function(){/ * mouse out * /});'此外,'mouseOut'方法沒有定義。我相信你的意思是'mouseout'? –

回答

6

hover()寄存器都mouseentermouseleave處理程序,所以你可以傳遞兩個事件處理函數.hover()第一個爲mouseenter和第二的mouseleave並刪除mouseout處理

$("#parent").hover(function(){ 
    $(this).css("border-color", "white"); 
},function(){ 
    $(this).css("border-color", "black"); 
}); 

演示:Fiddle

+0

謝謝! :)對不起,我應該意識到... –

3

試試這個:

JSFiddle

$("#parent").hover(function(){ 
    $(this).css("border-color", "white"); 
}); 

$("#parent").on('mouseleave', function(){ 
    $(this).css("border-color", "black"); 
}); 
0

試試這個:

$(function(){ 
    $('#parent').mouseover(function(){ 
     $(this).css("border-color", "white"); 
    }).mouseout(function(){ 
     $(this).css("border-color", "black"); 
    }); 
}); 
相關問題