在选项卡更改时隐藏手风琴
Hide accordion on tab change
问题:
我有由 jQuery 标签提供支持的标签。选项卡内有手风琴项目,单击时会展开。当我切换到不同的选项卡时,我想隐藏所有活动的(打开的)手风琴div。
管理手风琴行为的当前代码:
var all_spans = $('.accordion-item-text').hide();
$('.accordion-item h3').click(function(e){
$('.accordion-item h3').removeClass('active');
$(this).toggleClass('active');
var thisSpan = $(this).parent().find('.accordion-item-text'),
isShowing = thisSpan.is(":visible");
all_spans.hide(500);
if (!isShowing) {
thisSpan.slideToggle();
}
e.preventDefault();
});
应该管理选项卡更改和隐藏所有打开的手风琴元素的当前代码:
所以,我认为一个简单的点击功能就可以做到,但显然我错了。
$('.ui-tab').click(function() {
$('.accordion-item h3').removeClass('active');
$('.accordion-item-text').hide(500);
});
这根本行不通,我必须先搜索那个确切的 div 吗?欢迎提出任何建议。
当前HTML部分:
<div class="product_content">
<div id="tabs">
<ul class="clearfix">
<li><a href="#tabs-0">About</a></li>
<li><a href="#tabs-1">General specifications</a></li>
</ul>
<div id="tabs-0" class="tabcontent">
<div class="accordion_wrap">
<div class="accordion-item">
<h3>Accordion label</h3>
<div class="accordion-item-text">accordion content</div>
</div>
</div>
<div class="accordion_wrap">
<div class="accordion-item">
<h3>Accordion label</h3>
<div class="accordion-item-text">accordion content</div>
</div>
</div>
</div>
<div id="tabs-1" class="tabcontent">
<div class="accordion_wrap">
<div class="accordion-item">
<h3>Accordion label</h3>
<div class="accordion-item-text">accordion content</div>
</div>
</div>
</div>
</div>
</div>
所以,我找到了解决办法。
我不知道为什么我以前的功能不起作用,但在睡过头之后我阅读了 jQuery UI 文档并发现我可以使用我的常规选项卡触发功能。
$("#tabs").tabs({
activate: function(event, ui) {
$('.accordion-item h3').removeClass('active');
$('.accordion-item-text').hide(500);
}
});
问题:
我有由 jQuery 标签提供支持的标签。选项卡内有手风琴项目,单击时会展开。当我切换到不同的选项卡时,我想隐藏所有活动的(打开的)手风琴div。
管理手风琴行为的当前代码:
var all_spans = $('.accordion-item-text').hide();
$('.accordion-item h3').click(function(e){
$('.accordion-item h3').removeClass('active');
$(this).toggleClass('active');
var thisSpan = $(this).parent().find('.accordion-item-text'),
isShowing = thisSpan.is(":visible");
all_spans.hide(500);
if (!isShowing) {
thisSpan.slideToggle();
}
e.preventDefault();
});
应该管理选项卡更改和隐藏所有打开的手风琴元素的当前代码:
所以,我认为一个简单的点击功能就可以做到,但显然我错了。
$('.ui-tab').click(function() {
$('.accordion-item h3').removeClass('active');
$('.accordion-item-text').hide(500);
});
这根本行不通,我必须先搜索那个确切的 div 吗?欢迎提出任何建议。
当前HTML部分:
<div class="product_content">
<div id="tabs">
<ul class="clearfix">
<li><a href="#tabs-0">About</a></li>
<li><a href="#tabs-1">General specifications</a></li>
</ul>
<div id="tabs-0" class="tabcontent">
<div class="accordion_wrap">
<div class="accordion-item">
<h3>Accordion label</h3>
<div class="accordion-item-text">accordion content</div>
</div>
</div>
<div class="accordion_wrap">
<div class="accordion-item">
<h3>Accordion label</h3>
<div class="accordion-item-text">accordion content</div>
</div>
</div>
</div>
<div id="tabs-1" class="tabcontent">
<div class="accordion_wrap">
<div class="accordion-item">
<h3>Accordion label</h3>
<div class="accordion-item-text">accordion content</div>
</div>
</div>
</div>
</div>
</div>
所以,我找到了解决办法。 我不知道为什么我以前的功能不起作用,但在睡过头之后我阅读了 jQuery UI 文档并发现我可以使用我的常规选项卡触发功能。
$("#tabs").tabs({
activate: function(event, ui) {
$('.accordion-item h3').removeClass('active');
$('.accordion-item-text').hide(500);
}
});