-1

可能重复:
鼠标悬停在指定的 div 上并保持原始 div 打开

我问了一个类似的问题,它被埋没了,没有任何答案可以解决这个问题,所以请不要在我等待并且没有答案的时候给我发火。

这是原始问题:Mouseout on specified divs and keep original div open

这是所有设置的小提琴:http: //jsfiddle.net/bUzPG/10/

似乎一切都应该与小提琴一起工作,但代码并没有做它应该做的事情。任何有效的答案都将被标记为已解决,这让我发疯!

4

4 回答 4

0

希望这是你想要的

http://jsfiddle.net/bUzPG/16/

于 2011-07-07T23:01:23.820 回答
0

如果你这样做,通过将你的 3 个 div 包围在一个父 div 中,它会起作用吗? http://jsfiddle.net/bUzPG/17/

于 2011-07-07T23:02:05.037 回答
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');
    });

JS 小提琴演示

请记住,父div元素(或其他包含元素)需要紧密贴合div元素的边界,否则mouseleave事件不会像您期望的那样触发),这就是浮动div(而不是s)的原因。div > div其他选项包括 display: inline;display: inline-block;

于 2011-07-07T23:16:24.507 回答
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();
 }
  });
于 2011-07-07T23:22:55.263 回答