bootstrap-collapse.js隐藏和显示事件

时间:2014-02-11 19:29:23

标签: javascript twitter-bootstrap collapse

我遇到了boostrap-collapse.js show.bs.collapse和hide.bs.collapse事件的问题 - 第一次调用时这些事件没有启动(例如页面加载 - > on.show =事件未被触发 - > on.hide =事件未被触发 - > on.show =事件被触发)。显示/取消隐藏元素后,这些事件会按预期启动。

HTML

<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>

JS

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});

但这没有任何结果。有什么我想念的吗?干杯!

1 个答案:

答案 0 :(得分:3)

通过首先创建事件处理程序然后调用.collapse('toggle')事件来修复:

  $("#"+invoke).on('show.bs.collapse',function(){
    // do something when enabled
  });
  $("#"+invoke).collapse('toggle');