hidden.bs.modal
не является событием, поэтому нет возможности прослушивать его напрямую с помощью addEventListener
.
Что вы можете сделать, так это прослушивать изменения атрибутов определенного элемента c, используя наблюдатель мутации .
Вам необходимо настроить обратный вызов, который по сути является вашим обработчиком событий, и прикрепить его к наблюдателю мутации, а затем настроить наблюдателя для наблюдения за вашим модальным элементом.
const target = document.getElementById('target');
document.getElementById('btn1').addEventListener('click', e => target.classList.add('hidden', 'bs', 'modal'));
document.getElementById('btn2').addEventListener('click', e => target.classList.remove('hidden', 'bs', 'modal'));
const config = { attributes: true, childList: false, subtree: false };
function callback(mutationsList, observer)
{
for(let mutation of mutationsList)
{
if(mutation.attributeName == 'class')
{
let cls = mutation.target.getAttribute('class');
if(cls.includes('hidden') && cls.includes('bs') && cls.includes('modal'))
{
console.log('the modal is now hidden');
}
}
}
}
const observer = new MutationObserver(callback);
observer.observe(target, config);
.hidden
{
color:green;
}
.bs
{
background: red;
}
.modal
{
border:black dashed 3px;
}
<p id="target">hello</p>
<p><input type="button" id="btn1" value="switch on"></p>
<p><input type="button" id="btn2" value="switch off"></p>