подтверждение выполнено несколько раз, console.log только один раз при ('click') событии - PullRequest
0 голосов
/ 20 ноября 2018

Я попытался создать функцию jquery, которая работает вместе с функцией bpopup (iframe).Я хочу показать подтверждающее сообщение, прежде чем пытаться закрыть iframe.Я добавил подтверждающее сообщение, которое отображается после изменения, но после отправки формы поле подтверждения дублируется.Я попытался отладить и проверил, сколько раз выполнялась функция, поэтому я сделал console.log, но этот console.log выполнялся только один раз, когда подтверждающее сообщение выполнялось несколько раз.это функция:

function confirm_changed(){
    var changed = false;
    $('.b-modal', parent.document).on('click', function(){
        if(changed && confirm('Weet je zeker dat je dit scherm wilt verlaten?')){
            $('.b-modal', parent.document).removeClass('changed');
        }
    });
    $(document).one('input', function(){
        $('.b-modal', parent.document).addClass('changed');
        changed = true;
    });
}

Эта функция вызывается в document.ready, и это функция-прототип bpopup, где я добавил условие для подтверждающего сообщения:

function r(){
    setTimeout(function(){
        if(c('.changed').length === 0){
            a.modal && c(".b-modal." + b.data("id")).fadeTo(a.speed, 0, function(){
                c(this).remove()
            });
            a.scrollBar || c("html").css("overflow", "auto");
            c(".b-modal." + e).unbind("click");
            f.unbind("keydown." + e);
            k.unbind("." + e).data("bPopup", 0 < k.data("bPopup") - 1 ? k.data("bPopup") - 1 : null);
            b.undelegate(".bClose, ." + a.closeClass, "click." + e, r).data("bPopup", null);
            clearTimeout(H);
            G();
            return !1
        }
    }, 0);
}

ЭтоФункция закрывает iframe.

Я добавил время ожидания, чтобы эта функция выполнялась после сообщения подтверждения.после того, как форма отправлена ​​и все прошло валидацию, класс удаляется.

...