【发布时间】:2020-08-21 19:12:14
【问题描述】:
如何检测所有项目何时已手动更改为 aria-expanded="false" 或 aria-expanded="true" 以触发点击功能的更改。目前,点击触发器还不够聪明,无法知道所有项目何时具有相同的状态,以允许下一次点击展开/全部折叠。
如果您手动折叠所有项目,然后尝试切换按钮,则必须单击它两次才能重置状态。我希望通过检测所有项目何时手动更改为相同状态来自动完成此操作。
$(function() {
$(".collapsable-basic").collapsable({
accordion: false,
fx: "toggle",
collapsableAll: true
});
$(".collapsable-basic").collapsable("expandAll");
jQuery.fn.clickToggle = function(a, b) {
return this.on("click", function(evt) {
[b, a][(this.$_io ^= 1)].call(this, evt);
});
};
$(".btn-primary").clickToggle(
function(evt) {
evt.preventDefault();
$(this).text("expand");
$(".collapsable-basic").collapsable("collapseAll");
},
function(evt) {
$(this).text("collapse");
$(".collapsable-basic").collapsable("expandAll");
}
);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.statically.io/gist/moofawsaw/696afac8210ff49f0224e2e6fecb4f0f/raw/cd8c6aec13b9453d9bf2952c242bdfd61980f134/pairpal-collapsable.js"></script>
<button class="btn btn-primary expand-all">collapse</button>
<div class="collapsable collapsable-basic">
<h4 class="ca-control">
Box 1
</h4>
<div class="ca-box">
<p>
Aliquam
</p>
</div>
</div>
<div class="collapsable collapsable-basic">
<h4 class="ca-control">
Box 2
</h4>
<div class="ca-box">
<p>
Fusce nibh magna.
</p>
</div>
</div>
<div class="collapsable collapsable-basic">
<h4 class="ca-control">
Box 3
</h4>
<div class="ca-box">
<p>
Quisque lobortis\.
</p>
</div>
</div>
【问题讨论】:
标签: jquery collapsable