![](/img/trans.png)
[英]On click stopPropagation while keeping bootstrap collapse behavior
[英]Bootstrap collapse - how to add additional click behavior that depends on the state of collapse or not
我有一个按钮来控制可折叠div的展开/折叠。 但我想在点击时添加其他功能,具体取决于div是在扩展还是在崩溃。 我写了这段代码:
buttonElement.click(function() {
if ($(this).hasClass("collapsed")) {
// do the thing I want to do when expanding
} else {
// do the thing I want to do when collapsing
}
})
这可行,但是我想知道它是否健壮。 它假定我的click函数在数据切换更改类之前运行,并且我不确定是否合适。
最好的办法是阅读Bootstrap文档 :)
您的解决方案不是最好的,因为如果您足够快地双击按钮,它将在if语句和else语句中执行代码(仅折叠一次)
调用show实例方法时,将立即触发此事件。
$('#myCollapsible').on('show.bs.collapse', function () {
// do something…
});
当折叠元素对用户可见时将触发此事件(将等待CSS转换完成)。
$('#myCollapsible').on('shown.bs.collapse', function () {
// do something…
});
调用hide方法后,立即触发此事件。
$('#myCollapsible').on('hide.bs.collapse', function () {
// do something…
});
当用户已隐藏折叠元素时将触发此事件(将等待CSS转换完成)。
$('#myCollapsible').on('hidden.bs.collapse', function () {
// do something…
});
例:
$('[data-toggle="collapse"]').click(function() {
var collapsibleDiv = $(this).closest('.panel').find('.panel-collapse');
collapsibleDiv.on('show.bs.collapse', function() {
$('body').css('background', '#1abc9c');
});
collapsibleDiv.on('shown.bs.collapse', function() {
$('body').css('background', '#e74c3c');
});
collapsibleDiv.on('hide.bs.collapse', function() {
$('body').css('background', '#3498db');
});
collapsibleDiv.on('hidden.bs.collapse', function() {
$('body').css('background', '#7f8c8d');
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.