Как прикрепить функцию к событию popover dismiss (Twitter Bootstrap)
Я сделал некоторые поиска и я только смог понять, что я могу прикрепите события к кнопкам, которые заставляют его закрываться.
однако это не обрабатывает случай, когда пользователь просто нажимает где-то еще. Я хотел бы вызвать событие, поскольку popover исчезает и удаляется. У кого-нибудь есть предложения?
обновление: я попробовал ответ ниже и не смог заставить его работать, хотя он явно должен jsfiddle пример. Могут возникнуть некоторые конфликты с библиотеками и настройками, которые я использую.
вот код, который я использую:
this.$el
.popover({
html: true,
title: 'Schedule an appointment',
content: '<div id="' + this.popoverView.cid + '" class="event-popover"></div>',
placement: placement
})
.popover('show')
.on('hidden', function(e) {
alert('hidden');
});
он создает popover, показывает его, а затем добавляет on hidden
событие. Первые два работают правильно. Однако третий не срабатывает при нажатии кнопки "Отмена" (data-dismiss='modal'
) или нажмите в другом месте экрана, чтобы закрыть кнопку.
библиотеки, которые я использую:require.js
, backbone.js
, marionette.js
.
Я пересмотрел jsfiddle для использования нажмите, и он все еще работает:http://jsfiddle.net/zj37u/
есть ли у кого-нибудь предложения о том, почему мой может не работать или как я могу его отладить? Я уже пробовал пару вариантов.
1 ответов
есть hide
и hidden
событие, которое вы можете слушать на пирог. hide
происходит, когда popover начинает исчезать и hidden
, когда он завершается.
вот пример отображения предупреждения, когда вы перемещаете мышь от ссылки popover:
HTML-код:
<a href="#" id="button"
class="btn danger"
rel="popover"
data-original-title="title"
data-content="content">popover</a>
JS:
var $popover = $("a[rel=popover]").popover({
trigger: "hover"
}).click(function(e) {
e.preventDefault();
});
$popover.on("hidden", function(e) {
alert("hidden");
});
также как jsfiddle: http://jsfiddle.net/Ny5Km/4/
обновление:
для начальной загрузки версии v3.3.5, см popover-события
$popover.on("hidden.bs.popover", function(e) {
alert("hidden.bs.popover");
});