在悬停时切换div

时间:2014-03-06 13:19:25

标签: jquery css jquery-hover

我有一个测试UL列表,如下所示:

<ul>
<li id="firstdiv">First div</li>
<li id="seconddiv">Second div</li>
<li id="thirddiv">Third div</li>
....
</ul>

而且,吼叫我有相关的div,又名:

<div id="firstdiv">Content Here</div>
<div id="seconddiv">Content Here</div>
<div id="thirddiv">Content Here</div>

我想知道如果我的每个div只显示它的LI项目悬停,可能有一些淡化效果。 我试着从这里得到一些其他的答案,但没有运气:\

6 个答案:

答案 0 :(得分:3)

正如我所提到的,重要的是你的id是唯一的。因此,您需要找到另一种方式来引用您的<div>。我建议使用data-*属性:

<强> HTML

<ul>
    <li data-id="firstdiv">First div</li>
    <li data-id="seconddiv">Second div</li>
    <li data-id="thirddiv">Third div</li>
</ul>

然后你的jQuery看起来像下面这样:

$('ul li').on({
    'mouseenter':function(){
        $('#'+$(this).data('id')).fadeIn();
    },'mouseleave':function(){
        $('#'+$(this).data('id')).fadeOut();
    }
});

JSFiddle

答案 1 :(得分:3)

请参阅this fiddle

同时保持ID的独特性。

以下是来自小提琴的一些代码:

$(document).ready(function() {
    $('ul>li').hover(function(){
        $('#d'+$(this).prop('id')).show();
    }, function() {
        $('#d'+$(this).prop('id')).hide();
    });
});

答案 2 :(得分:1)

将您的ID更改为班级

<ul>
<li class="firstdiv">First div</li>
<li class="seconddiv">Second div</li>
<li class="thirddiv">Third div</li>
</ul>

<div class="firstdiv">Content 1 Here</div>
<div class="seconddiv">Content 2 Here</div>
<div class="thirddiv">Content 3 Here</div>

然后你可以使用:

$('ul li').hover(function() {
    var cls = $(this).attr('class');
    $('div.'+cls).toggle();
})

<强> Fiddle Demo

答案 3 :(得分:1)

试试这个。

html代码

<ul>
<li id="firstli">First div</li>
<li id="secondli">Second div</li>
<li id="thirdli">Third div</li>
</ul>

<div id="firstdiv">Content Here</div>
<div id="seconddiv">Content Here</div>
<div id="thirddiv">Content Here</div>

<强>的JavaScript。

$(document).ready(function(){

 $("#firstdiv").hide();
 $("#seconddiv").hide();
 $("#thirddiv").hide();

    $("#firstli").hover(function(){
      $("#firstdiv").show();
    });
    $("#secondli").hover(function(){
      $("#seconddiv").show();
    });
    $("#thirdli").hover(function(){
      $("#thirddiv").show();
    });
}); 

见输出: fiddle demo

答案 4 :(得分:0)

您应该为元素提供唯一的ID

<ul>
<li id="firstdiv">First div</li>
<li id="seconddiv">Second div</li>
<li id="thirddiv">Third div</li>

</ul>

<div class="myclass" id="firstdiv1">Content1 Here</div>
<div class="myclass" id="seconddiv1">Content2 Here</div>
<div class="myclass" id="thirddiv1">Content3 Here</div>

$(".myclass").hide();
$("ul li").hover(function(){
$(".myclass").hide();
$("#"+this.id+1).show();
});

Demo

答案 5 :(得分:0)

这是您的答案

<html>
<head>
<style>
.hidden_div{
    display: none;
    position: absolute;
}
</style>
<script src="script/jquery-1.10.2.js"></script>
<script>
$(document).ready(function(){
    $("li").mouseover(function(){
        var id=$(this).attr('id');

        $('.hidden_div').fadeOut();
        $("."+id).fadeIn();
    })

});
</script>
</head>
<body>
<ul>
<li id="firstdiv">First div</li>
<li id="seconddiv">Second div</li>
<li id="thirddiv">Third div</li>
</ul>

<div class="firstdiv hidden_div">Content 1</div>
<div class="seconddiv hidden_div">Content 2</div>
<div class="thirddiv hidden_div">Content 3</div>
</body>
</html>

只需更改脚本的位置