2017-10-13 99 views
2

我无法从Bootstrap 3.3.6收到shown.bs.collapse事件。我已经仪表我bootstrap.js以确保该事件被解雇,我觉得是:如何从Bootstrap接收shown.bs.collapse事件?

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,这证明我附加了第l正确的元素。但它从来没有被召唤过。

更奇怪的是,这一切都在jsfiddle中工作,但不是当我们将代码复制到应用程序中。我正在考虑一些软件包版本或设置被搞砸了。什么会造成这种情况?

回答

0

根据this Stack Overflow post,您不能对自定义jQuery事件(例如“shown.bs.collapse”)使用“.addEventListener”。

我不能说为什么jQuery“.on”版本不起作用,但。