我问了一个类似的问题,它被埋没了,没有任何答案可以解决这个问题,所以请不要在我等待并且没有答案的时候给我发火。
这是原始问题:Mouseout on specified divs and keep original div open
这是所有设置的小提琴:http:
//jsfiddle.net/bUzPG/10/
似乎一切都应该与小提琴一起工作,但代码并没有做它应该做的事情。任何有效的答案都将被标记为已解决,这让我发疯!
我问了一个类似的问题,它被埋没了,没有任何答案可以解决这个问题,所以请不要在我等待并且没有答案的时候给我发火。
这是原始问题:Mouseout on specified divs and keep original div open
这是所有设置的小提琴:http:
//jsfiddle.net/bUzPG/10/
似乎一切都应该与小提琴一起工作,但代码并没有做它应该做的事情。任何有效的答案都将被标记为已解决,这让我发疯!
希望这是你想要的
如果你这样做,通过将你的 3 个 div 包围在一个父 div 中,它会起作用吗? http://jsfiddle.net/bUzPG/17/
最简单的方法是将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
(而不是s)的原因。div > div
其他选项包括 display: inline;
或display: inline-block;
。
如果我理解正确:
$("#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();
}
});