У меня есть следующая функция для добавления элементов на страницу на лету;
function modalConfirm (title, msgBody, btnOK, btnCancel) {
element = '<div class="ui-modal-widget"><div class="confirm"><h2>'+title+'</h2><div>'+msgBody+'</div></div>';
element += '<div class="button-panel" style="float:right; margin-top:-30px; margin-right:5px;">';
element += '<a href="#" rel="closeModal">'+btnCancel+'</a>';
element += '<a href="#" rel="confirmModal">'+btnOK+'</a>';
element += '</div></div>';
// OPEN MODAL WINDOW
Я вызываю вышеуказанную функцию при нажатии $('a.checkData')
.
ПРОБЛЕМА
Кажется, все работает нормально, за исключением того, что если я закрываю открытое модальное окно, нажимая $('a[rel=closeModal]')
более одного раза, и после этого несколько раз нажимаю $('a[rel=confirmModal]')
, он выполняет те же действия столько раз, сколько я нажал $('a[rel=closeModal]')
.
Пример;
$('a[rel=closeModal]').live('click', function(e) {
e.preventDefault();
// CLOSE MODAL BOX
});
$('a[rel=confirmModal]').live('click', function(e) {
e.preventDefault();
console.log('Modal Is Confirmed');
});
Рассмотрим код выше. При нажатии $('a.checkData')
и нажатии пользователем $('a[rel=closeModal]')
5 раз перед нажатием $('a[rel=confirmModal]')
. Он будет писать 5 раз Modal Is Confirmed
за 1 клик . Если пользователь нажимает $('a[rel=closeModal]')
10 раз, прежде чем нажать $('a[rel=confirmModal]')
. Это будет писать 10 раз Modal Is Confirmed
.
Буду рад, если вы поможете мне с этой проблемой. Я пытался добавить $('a[rel=confirmModal]').unbind('click');
буквально везде (внутри функции, перед вызовом функции, после вызова функции непосредственно перед / после / внутри $('a[rel=confirmModal]').live('click',function(){});
, но безуспешно.
Спасибо за ваше время и заботу заранее.