如何使用jquery在鼠标悬停上显示div?

时间:2014-01-09 06:34:28

标签: javascript jquery css mouseover

我有jsfiddle demo

我想显示特定悬停的特定div悬停。 我已经制作了一个函数,它会在悬停时显示div,但它不起作用。

我很困惑,如何为每个标签创建一个功能。 现在我只做了一个功能。

代码:

<a class="cart" href="#"> show </a><br>
<a class="cart1" href="#"> show1 </a><br>
<a class="cart2" href="#"> show2 </a><br>

<div class="laptop" style="position: absolute;z-index: 1;">
    laptop
</div>
<div class="mobile" style="position: absolute;z-index: 1;">
    mobile
</div>
<div class="shoes" style="position: absolute;z-index: 1;">
    shoes
</div>

CSS:

.laptop{
    display: none;              
    min-height: 400px;
    width: 400px:
    position:absolute;
    background-color: black;               
}
.mobile{
    display: none;                  
    min-height: 200px;
    width: 200px:
    position:absolute;
    background-color: blue;            
}
.shoes{
    display: none;                  
    min-height: 300px;
    width: 200px:
    position:absolute;
    background-color: red;             
}

JS:

$(document).ready(function () {
    $(document).on('mouseenter', '.cart', function () {                       
        $(this).next(".laptop").show();

    }).on('mouseleave', '.cart', function () {
        $(this).next(".laptop").hide();
    });
});

10 个答案:

答案 0 :(得分:5)

我已经更新了你的小提琴。

http://jsfiddle.net/K2RAt/1/

已更改

$(this).next(".laptop").hide();

$(".laptop").hide();

这对你有用。

答案 1 :(得分:4)

cart等所有锚元素添加一个公共类,然后添加另一个data-*以指定要显示的元素的选择器

尝试

<a class="cart" data-target=".laptop" href="#"> show </a>
<br>
<a class="cart" data-target=".mobile" href="#"> show1 </a>
<br>
<a class="cart" data-target=".shoes" href="#"> show2 </a>

然后

$(document).ready(function () {
    $(document).on('mouseenter', '.cart', function () {
        $($(this).data('target')).show();
    }).on('mouseleave', '.cart', function () {
        $($(this).data('target')).hide();
    });
});

演示:Fiddle

答案 2 :(得分:2)

你可以试试这个:

<a>Hover</a>
<div>To be shown</div>

CSS

div {
display: none;
}

a:hover + div {
display: block;
}

答案 3 :(得分:2)

只需使用:

 $( ".cart1" ).mouseover(function(){
       $('.laptop').show();
    });

演示:Fiddle

答案 4 :(得分:1)

我更喜欢CSS ...

假设HTML4,使用此标记:

<a>Hover over me!</a>
<div>Stuff shown on hover</div>

您可以这样做:

div {
    display: none;
}

a:hover + div {
    display: block;
}

演示http://jsfiddle.net/z6tL9

答案 5 :(得分:1)

我刚刚更新了你的小提琴 http://jsfiddle.net/K2RAt/4/

只需要$(".laptop").show();

答案 6 :(得分:1)

Working Fiddle

[HTML:

<ul id="menu" class="menu">
  <li>
      <a href="">Home</a>
  </li>
  <li id="menu1" class="menu-link">
      <a href="/">LINK1</a>
      <div id="menu1content" class="menuDescription">
        Description for "menu1"
      </div>
  </li>
  <li id="menu2" class="menu-link">
      <a href="/">LINK2</a>
      <div id="menu2content" class="menuDescription">
         Description for "menu2"
      </div>
  </li>
  <li id="menu3" class="menu-link">
      <a href="/">LINK3</a>
      <div id="menu3content" class="menuDescription">
         Description for "menu3"
      </div>
    </li>
  <li id="menu4" class="menu-link">
      <a href="/">LINK4</a>
      <div id="menu4content" class="menuDescription">
         Description for "menu4"
      </div>
    </li>
</ul>
CSS:

.menu{
    font-family: 'LeagueGothicRegular';
    position: absolute;
    top:25px;
    overflow:hidden;
    right:100px;
    float:right;

}
.menu ul{
    float:left;
    width:100%;
    padding:0;
    margin:0;
    list-style-type:none;
}
.menu li{
    float:left;
    margin: 0 5px;
    position:relative;
    overflow:hidden;
    width: 120px;
    height: 30px;
}
.menu li a{
    position: absolute;
    bottom: 0;
}

.menu li .menuDescription {
    display: none;
}

.menu li:hover .menuDescription {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 120px;
}

.menuDescription  {
    font-size: 11px;
    color: rgb(0, 0, 0);
}][2]

答案 7 :(得分:1)

您可以将自定义属性放在锚标记中,目标Div Id如下:

<a class="cart" href="#" target_id='laptop'> show </a><br>

然后使用以下脚本:

$(document).ready(function () {
            $(document).on('mouseenter', '.cart', function () {                       
              var cl  = $(this).attr('target_id');
                jQuery('div.'+cl).show()
              }).on('mouseleave', '.cart', function () {
                 var cl  = $(this).attr('target_id');
                   jQuery('div.'+cl).hide();
              });
});

以下是演示:http://jsfiddle.net/jn9eT/1/

希望,它解决了你的问题。

答案 8 :(得分:1)

为购物车等所有锚元素添加一个公共类,然后添加另一个附加数据 - *以指定要显示的元素的选择器

试试这个: -

<a class="cart" data-target=".laptop" href="#"> show </a>
<br>
<a class="cart" data-target=".mobile" href="#"> show1 </a>
<br>
<a class="cart" data-target=".shoes" href="#"> show2 </a>

然后: -

$(document).ready(function () {
    $(document).on('mouseenter', '.cart', function () {
        $($(this).data('target')).show();
    }).on('mouseleave', '.cart', function () {
        $($(this).data('target')).hide();
    });
});

Show this demo

答案 9 :(得分:0)

您可以使用: -

$(document).ready(function () {     
     $('.cart').hover(function(){
           $(".laptop").show();
     })
 });