Я выполняю действие удаления на странице, когда пользователь нажимает кнопку подтверждения на кнопке модального окна начальной загрузки Twitter.
У меня есть две кнопки: одна позволяет пользователю отменить действие, а другая — подтвердить.
Когда пользователь нажимает кнопку подтверждения удаления, когда модальное окно скрыто, я выполняю свои действия, поэтому, например, я могу показать анимацию и фактически удалить элемент.
Если пользователь нажимает на несколько элементов, но его/ее выбор - кнопка отмены, когда он/она нажимает на элемент, который он/она хочет удалить, удаление выполняется также для элементов, для которых был выбран вариант отмены.
Не должно ли «скрытое» событие отсоединяться от элемента после его выполнения?
Я знаю, что могу отсоединить цепочку событий, изменив $('#confirmDeleteModal').on('hidden', function() {
на $('#confirmDeleteModal').off('hidden').on('hidden', function() {
, но мне действительно понятно, почему это происходит. Я что-то упустил?
Код:
$(document).ready(function(){
$('.delete').on('click', function() {
var itemID = $(this).data('product-id')
$('#confirmDeleteModal').modal('show');
$('#confirmDelete').on('click', function() {
$('#confirmDeleteModal').on('hidden', function() {
// Here I do my stuff to perform deletion
$('#result').append('This method has been called for ' + itemID + ' <br />' )
});
});
});
});
Надеюсь, я ясно изложил свой вопрос. Я также подготовил JS-бин: http://jsbin.com/inulaw/5/edit.