我无法从Bootstrap 3.3.6收到shown.bs.collapse
事件。我已经对我的bootstrap.js
进行了检测,以确保该事件在我认为的情况下被解雇:
this.$element.trigger('shown.bs.collapse')
console.log("triggered shown.bs.collapse on #" + this.$element.attr("id"))
在我准备好的文档中,我尝试使用jQuery和纯JS注册事件:
$('.panel-collapse').on('shown.bs.collapse', function () {
console.log("listener called");
});
...或...
var panels = document.getElementsByClassName("panel-collapse");
for (var i = 0; i < panels.length; ++i) {
console.log("adding event listener to #" + panels[i].getAttribute("id"));
panels[i].addEventListener("shown.bs.collapse", function () {
console.log("listener called");
});
}
JS版本记录了在bootstrap.js
中触发事件时记录的相同元素ID,证明我将侦听器附加到正确的元素。但它从未被召唤过。
更奇怪的是,这一切都适用于jsfiddle,但不是在我们将代码复制到应用程序中时。我认为某些软件包版本或设置在某个地方搞砸了。什么可能导致这种情况?
答案 0 :(得分:0)
根据this Stack Overflow post,你不能使用&#34; .addEventListener&#34;对于自定义jQuery事件(例如&#34; shown.bs.collapse&#34;)。
我不能说为什么jQuery&#34; .on&#34;但版本不会起作用。