2017-10-13 97 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」版本不起作用,但。