jQuery切换(隐藏/显示)子类
jQuery toggle (hide/show) children class
我开始使用jQuery,我被困在以下场景的儿童切换:
<div id="id1">
<heade>
<div class="hideshow1"> Toggle this div </div>
<div class="hideshow2"> Toggle this div </div>
<h2> My Header </h2>
</header>
<div class="body1">
This is my body
</div>
</div>
<div id="id2">
<header>
<div class="hideshow1"> Toggle this div </div>
<div class="hideshow2"> Toggle this div </div>
<h2> My Header </h2>
</header>
<div class="body1">
This is my body
</div>
</div>
我在这里要做的是隐藏所有的class="hideshow1"
和class="hideshow2"
,但不是h2
初始页面加载时。但是,当用户将鼠标悬停在id="id1"
的任何部分上时,则仅在各自的div中显示class="hideshow1"
和class="hideshow2"
,并在移除指针时隐藏。
如果有jQuery专家可以分享一些信息。
提前感谢
您可以检查包装元素是否悬停,如果是,则显示其子元素或隐藏其子元素。
Ref: hover
, find
and show
/hide
$("#id1, #id2").hover(function () {
$(this).find(".hideshow1, .hideshow2").show();
}, function () {
$(this).find(".hideshow1, .hideshow2").hide();
})
演示:http://jsfiddle.net/IrvinDominin/53PgZ/
试试这样:
$('#id1, #id2').on('mouseenter mouseleave', function(e) {
$('.hideshow1, .hideshow2', this).toggle(e.type == 'mouseenter');
});
演示:http://jsfiddle.net/n7Z7a/
你应该只有一个类,即"hideshow",并让它默认为display: none。然后,在鼠标悬停时,为当前元素显示它。此外,您可以在一个类上绑定元素。像这样:
<div class="trigger">
<heade>
<div class="hideshow"> Toggle this div </div>
<div class="hideshow"> Toggle this div </div>
<h2> My Header </h2>
</header>
<div class="body1">
This is my body
</div>
</div>
<div class="trigger">
<header>
<div class="hideshow"> Toggle this div </div>
<div class="hideshow"> Toggle this div </div>
<h2> My Header </h2>
</header>
<div class="body1">
This is my body
</div>
</div>
:
$('.trigger').on('mouseover', function(e) { $(this).children('hideshow').show(); }).on('mouseout',function(e) { $(this).children('hideshow').hide() });
希望有帮助!
试试这个: