Jquery 切换不是同级的div
我需要你的帮助,请。。。 我需要单击一个图标来打开一个隐藏的div,它不是下一个元素。 这是我的标记(record div在页面上重复了很多次Jquery 切换不是同级的div,jquery,html,toggle,Jquery,Html,Toggle,我需要你的帮助,请。。。 我需要单击一个图标来打开一个隐藏的div,它不是下一个元素。 这是我的标记(record div在页面上重复了很多次 <div class='record'> <div class="marker_name left"><a href="marker.php?id=11444">Name</a></div> <div class="clear table"> <
<div class='record'>
<div class="marker_name left"><a href="marker.php?id=11444">Name</a></div>
<div class="clear table">
<div class="tr">
<div class="td"><div class="icon_32"><img src="images/flags/DE.png"></div></div>
<div class="td"><div class="icon_32 type_sprite spr_ASN"></div></div>
<div class="td"><div class="icon_32"><img src="images/site/web_32.png"></a></div></div>
<div class="td mid"><div class="bearing icon_32 bearing_N"></div></div>
<div class="td mid"><div class="distance">0kM</div></div>
<div class="td"><div class="trigger icon_32"></div></div>
</div>
</div>
<div class="hidden">
<ul>
<li>List of features</li>
</ul>
</div>
</div>
类为“trigger”的div应该打开类为“hidden”的div,理想情况下,关闭现在可见的任何其他类为hidden。
有人能给我指一下正确的方向吗
$(document).ready(function(){
$('.hidden').hide();
$('.trigger').click(function() {
var el = $(this).toggleClass('active')
.closest('.record')
.find('.hidden').toggle();
$('.hidden:visible').not(el).hide();
});
});
演示:如果找到父记录,然后找到应该工作的隐藏子记录:
$('.trigger').click(function() {
$(this).parent('.record').find('.hidden').toggle();
);
这会隐藏所有
.hidden
div,然后当单击触发器时,它会再次隐藏所有div,查看触发器并找到最近的。在dom树上记录,找到其中的.hidden
,然后切换其可见性。当然,它也会隐藏当前的.hidden
,然后切换到是的,所以它总是可见的?很好的观点!经过思考,我会按照你所展示的路线去做。哇,我没想到会有这么快的答案,这正是我想要的
$(document).ready(function () {
$('.hidden').hide();
var $recs = $(".record"),
$hiddens = $recs.find(".hidden"),
$triggers = $recs.find(".trigger");
$('.trigger').click(function () {
$(this).toggleClass('active');
var $rec = $(this).closest('.record');
var $hidden = $rec.find('.hidden').toggle();
$hiddens.not($hidden).hide();
$triggers.not(this).removeClass('active')
});
});
$('.trigger').click(function() {
$(this).parent('.record').find('.hidden').toggle();
);
$(document).ready(function(){
$('.hidden').hide();
$('.trigger').click(function() {
$('.hidden').hide();
$(this).toggleClass('active').closest('.record').find('.hidden').toggle();
});
});