【问题标题】:How to Display a div on mouse-over using jquery ?如何使用 jquery 在鼠标悬停时显示 div?
【发布时间】:2014-01-09 06:34:28
【问题描述】:

我有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();
    });
});

【问题讨论】:

    标签: javascript jquery css mouseover


    【解决方案1】:

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

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

    变了

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

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

    这对你有用。

    【讨论】:

    • 先生,您能帮我对所有 div 做同样的事情吗?实际上我想在下拉列表中执行此操作,但现在我只是在对其进行测试。
    • 先生,假设我想使用下拉列表执行此操作,那么我必须添加函数 onChange() 吗?我必须将它的价值传递给功能?先生,我说得对吗?
    • 是的。正确的。如果您遇到问题,请尝试对其进行编码,然后我们就在这里 :)
    • 如果这对你有帮助,请不要忘记选择它作为答案:)
    • 是的,我会这样做的,别担心。
    【解决方案2】:

    你可以使用:-

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案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

        【讨论】:

        • 先生,假设我想使用下拉列表执行此操作,那么我必须添加函数 onChange() 吗?我必须将它的价值传递给功能?先生,我说得对吗?
        • @Arun P Johny -- $(this).data('target') 会像 $(this).find('.laptop') 一样工作吗?
        • @C-link 因为this 是锚元素,而.laptop 不是锚元素的后代
        • @C-link $(this).data('target') 返回 data-target 的值,可以是 .laptop.mobile 这将传递给另一个 jQuery 调用,例如 $('.laptop'),它将返回目标元素。相当于写var selector = $(this).data('target'); $(selector).show(); - jsfiddle.net/arunpjohny/H2Jpd/2
        • 这意味着这个选择器或任何选择器都将被忽略,只是作为 $(selector) 工作。谢谢..
        【解决方案5】:

        你可以试试这个:

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

        CSS

        div {
        display: none;
        }
        
        a:hover + div {
        display: block;
        }
        

        【讨论】:

          【解决方案6】:

          简单使用:

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

          演示:Fiddle

          【讨论】:

            【解决方案7】:

            我只喜欢 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

            【讨论】:

              【解决方案8】:

              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]
              

              【讨论】:

                【解决方案9】:

                您可以将自定义属性放在带有目标 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/

                希望,它可以解决您的问题。

                【讨论】:

                  【解决方案10】:

                  为所有锚元素(如购物车)添加一个公共类,然后添加另一个额外的 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();
                      });
                  });
                  

                  Show this demo

                  【讨论】:

                    猜你喜欢
                    • 2013-02-03
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多