Как получить show.bs.collapse событие из Bootstrap?

63
8

Я не могу получить событие shown.bs.collapse из Bootstrap 3.3.6. Я проверил свой 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, доказывая, что я подключаю слушателя к правильному элементу. Но он никогда не звонил.

Даже незнакомец, все это работает в jsfiddle, но не тогда, когда мы копируем код в приложение. Я думаю, что какая-то версия пакета или настройка где-то прикручена. Что может быть причиной этого?

спросил(а) 2021-01-25T17:28:03+03:00 5 месяцев назад
1
Решение
132

В соответствии с этой статьей Stack Overflow вы не можете использовать ".addEventListener" для пользовательских событий jQuery (например, "show.bs.collapse").

Я не могу сказать, почему версия jQuery ".on" не работает.

ответил(а) 2021-01-25T17:28:03+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема