我遇到了boostrap-collapse.js show.bs.collapse和hide.bs.collapse事件的问题 - 第一次调用时这些事件没有启动(例如页面加载 - > on.show =事件未被触发 - > on.hide =事件未被触发 - > on.show =事件被触发)。显示/取消隐藏元素后,这些事件会按预期启动。
<div class = "student" id = "stud1" onclick = "return expandTable(this,'stud1exp')">
// header and stuff
</div>
<div class="panel-collapse collapse" id = "stud1exp">
// info that I want to show/hide
</div>
function expandTable(self,invoke){
$("#"+invoke).collapse('toggle');
if (self.style.backgroundColor == "rgb(204, 238, 204)"){
$("#"+invoke).on('hide.bs.collapse',function(){
// do something when disabled...
});
}
else{
console.log("I am firing up here");
$("#"+invoke).on('show.bs.collapse',function(){
// do something when enabled
});
}
}
我尝试使用
设置可扩展元素的默认状态$("#"+divs[i].id).collapse({toggle:false});
但这没有任何结果。有什么我想念的吗?干杯!
答案 0 :(得分:3)
通过首先创建事件处理程序然后调用.collapse('toggle')
事件来修复:
$("#"+invoke).on('show.bs.collapse',function(){
// do something when enabled
});
$("#"+invoke).collapse('toggle');