从div到邻近div的鼠标输出,保持主div打开,在这些div之外的mousout,主div关闭

时间:2011-07-07 22:38:30

标签: jquery html mouseout

  

可能重复:
  Mouseout on specified divs and keep original div open

我问过一个类似的问题而且没有任何答案解决这个问题就被埋没了,所以请不要因为我等待而没有回答任何问题。

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

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

似乎一切都应该适用于小提琴,但代码并没有做到它应该做的事情。任何有效的答案都会被标记为已解决,这让我发疯了!

4 个答案:

答案 0 :(得分:0)

希望这是你想要的

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

答案 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');
    });

JS Fiddle demo

请记住,父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();
 }
  });