Bootstrap 3 popover показывает один и скрывает других, не работает
HTML
<ul class="navbar-nav pull-right">
<li><a href="#" data-toggle="popover" title="Notifiche" data-html="true" data-content="Notification1<hr />Notification 2<hr />Notification 3">Notifications</a></li>
<li><a href="#" data-toggle="popover" title="Messages" data-html="true" data-content="Message 1<hr />Message 2<hr />Message 3">Messages</a></li>
</ul>
JAVASCRIPT
$('[data-toggle="popover"]').popover({placement: 'bottom', trigger: 'click' });
//hide popover when click outside
$('body').on('click', function (e) {
$('[data-toggle="popover"]').each(function () {
if ($(this).has(e.target).length === 0 && $('.popoVer').has(e.target).length === 0) {
$(this).popover('hide');
}
});
});
CSS
.popover-content {
max-height: 150px;
overflow-y: scroll;
}
У меня есть эти два всплывающих окна на моей странице, и когда я нажимаю один из них и после того, как нажимаю второй, первый поповер скрывается, и все работает нормально. Но когда я снова нажимаю на первый поповер, кажется, он не работает должным образом. Мышь не может щелкнуть в свитке, и ссылки во всплывающем окне не работают нормально. Я думаю, что браузер держит открытым последний открытый поповер, даже если он скрыт. Любое предложение? Спасибо!
1 ответ
Я решил (спасибо другому посту о popovers) мою проблему с добавлением этого кода:
// hide other popovers (and their links from the DOM) opened
$(document).mouseup(function (e) {
if ($('.popover').has(e.target).length === 0) {
$('.popover').toggleClass('in').remove();
return;
}
});