nepster-web
@nepster-web

Почему on click (событие в событии) повторяется?

Подскажите пожалуйста почему событие on click повторяется.
Тоесть, когда открывается модальное окно и мы попадаем в событие:
$(document).on("click", ".confirm-success", function(event)
Оно вызывается несколько раз. Причем если открывать и закрывать окно и нажмимать на кнопку, то событие будет вызываться каждый раз на 1 раз больше.

$("body").on("click", ".ConfirmPostRequestToServer", function() 
        {  
            // данные самого окна 
            var box_modal_id = getNewId();
            var c = $('<div class="box-modal" />');
                c.prepend('<div class="box-modal_close arcticmodal-close">X</div>');
                c.attr('id', box_modal_id);
                
            // MODAL-CONFIRM
            var button = '';
        		button += '<div class="box-modal-confirm-button">';
        		button += '<button class="large green awesome confirm-success">Подтвердить</button>';
        		button += ' &nbsp;  &nbsp; <button class="large awesome arcticmodal-close">Отмена</button>';
        		button += '</div><div class="modal-loader"></div>';
        
         
                c.html('Предупреждение'+button);
                var arcticmodalData = {content: c};
                
            $.arcticmodal(arcticmodalData);
                   
            $(document).on("click", ".confirm-success", function(event){
                
                event.preventDefault();
                
                console.log(1);
    

                return false;
            });    

            return false;
        });
  • Вопрос задан
  • 5562 просмотра
Решения вопроса 1
gooddy
@gooddy
Потому что на каждый $("body").on("click",
у тебя добавляется новый обработчик $(document).on("click", ".confirm-success"
следовательно
если открывать и закрывать окно и нажмимать на кнопку, то событие будет вызываться каждый раз на 1 раз больше.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xaja
@xaja
вынести
$(document).on("click", ".confirm-success", function(event){

за $("body").on("click", ".ConfirmPostRequestToServer", function()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы