我问过一个类似的问题而且没有任何答案解决这个问题就被埋没了,所以请不要因为我等待而没有回答任何问题。
这是原始问题:Mouseout on specified divs and keep original div open
以下是所有设置的小提琴:
http://jsfiddle.net/bUzPG/10/
似乎一切都应该适用于小提琴,但代码并没有做到它应该做的事情。任何有效的答案都会被标记为已解决,这让我发疯了!
答案 0 :(得分:0)
希望这是你想要的
答案 1 :(得分:0)
如果你这样做,通过在父div中包围你的3个div,它会起作用吗? http://jsfiddle.net/bUzPG/17/
答案 2 :(得分:0)
最简单的方法是将div
元素包装在父div
中,并将hover()
个事件分配给该容器:
HTML:
<div>
<div class="x">x</div>
<div id="openDiv" class="y">me</div>
<div class="z">z</div>
</div>
jQuery的:
$('.container').hover(
function(){
$('#openDiv').addClass('highlight');
},
function(){
$('#openDiv').removeClass('highlight');
});
请记住,父div
(或其他包含元素)需要紧密贴合div
元素的边界,否则mouseleave
事件不会触发'期待',这就是为什么div
(但不是div > div
s)被浮动的原因。其他选项包括display: inline;
或display: inline-block;
。
答案 3 :(得分:0)
如果我理解正确的话:
$("#openDiv").mouseout(function (e) {
var used_classes = ['x', 'z'];
var $c = $(e.relatedTarget).attr('class');
if ($c=='x' || $c=='z')
{
$("#openDiv").show().css('background-color', 'pink');
}else{
$("#openDiv").hide();
}
});