我有以下代码将任何点击的手风琴面板移动到页面顶部。但是,我默认打开了一些手风琴面板,当有人关闭时,我不希望打开的手风琴面板动画。因此,我希望“滚动到顶部”代码仅适用于封闭面板。所以我想我需要在某种“if语句”中检测开/关状态。知道怎么做到这一点吗?
<div id="accordion">
<!--Open panel by default-->
<h3 class="accordion">Question</h3>
<div class="content">
<p>text</p>
</div>
<!--Closed panel-->
<h3 class="accordion">Question</h3>
<div class="content">
<p>text</p>
</div>
</div>
<script>
jQuery(function() {
var defaultPanel = parseInt(getParamFirst('section'));
jQuery( "#accordion" ).accordion(
{active: defaultPanel,
autoHeight: false,
collapsible: true,
heightStyle: "content",
animate: 200}
).show();
});
//////////////////////////////////////////////////
//Fire the below code only on closed panels
//////////////////////////////////////////////////
jQuery('.accordion').bind('click',function(){
var self = this;
setTimeout(function() {
theOffset = jQuery(self).offset();
jQuery('body,html').animate({ scrollTop: theOffset.top - 110 });
}, 200);
});
</script>
答案 0 :(得分:1)
添加.not('.ui-state-active')
:
jQuery('.accordion').not('.ui-state-active').bind('click',function(){
...