Работа ajaxStop jQuery в браузерах safari, IE

362
08 июля 2017, 11:30

Есть задача, выводить сообщение об изменениях на сайте пользователям. Это уведомление должно отрабатывать по событию ajaxStop jQuery.

var activation;
var custom_title;
var custom_content;
var custom_btn_close;
var custom_btn_no_more;
var display_counter; //times
var cookie_timeout_more; //days
var cookie_timeout_count; //days
/* --!Custom value -- */


$.ajax({
    url: "../../nct-includes/nct-functions/nct-action_notification_massage.php",
    success: function(data) {
        var res = JSON.parse(data);
        activation = parseInt(res.NOTI_ENABLE);
        custom_title = res.NOTI_TITLE;
        custom_content = res.NOTI_CONTENT;
        custom_btn_close = res.NOTI_CLOSE;
        custom_btn_no_more = res.NOTI_NOMORE;
        display_counter = parseInt(res.NOTI_COUNT);
        cookie_timeout_more = parseInt(res.NOTI_COOKIE_NOMORE);
        cookie_timeout_count = parseInt(res.NOTI_COOKIE_COUNT);
    },
});
$(document).ajaxStop(function() {
    if (activation !== 0 && parseInt($.cookie("count_view")) <= display_counter) {
        $.notiModal.init("attention_modal", {
            title: custom_title,
            top: 50,
            'close': custom_btn_close,
            'no_more': custom_btn_no_more,
            max_width: 1000,
            content: custom_content,
            // ok callback
            // onOkClick: function(noti_modal) {
            //     noti_modal.hide()
            //     $.notiModal.get("attention_modal").show();
            // }
        }).show();
    }
});

$(document).ajaxStop(function() {
    if (activation !== 0) {
        if ($.cookie("count_view") == null && !$.cookie("count_view")) {
            $.cookie("count_view", 1, {
                expires: cookie_timeout_count,
                path: location.host,
            });
            console.log("done");
            $.notiModal.get("attention_modal").show();
        } else {
            var countor = parseInt($.cookie("count_view"));
            var view_modal = parseInt($.cookie("class_noMore"));
            if (countor <= display_counter && view_modal != 1) {
                console.log(countor);
                $.notiModal.get("attention_modal").show();
                countor = countor + 1;
                $.cookie("count_view", countor);
            }
        }
    }
});

$(document).ajaxStop(function() {
    $("button[data-role='no_more']").on("click", function() {
        $("button[data-role='no_more']").addClass('no-more');
        if ($.cookie("class_noMore") == null) {
            $.cookie('class_noMore', 1, {
                expires: cookie_timeout_more,
                path: '/',
            });
        }
    });
});

Причина по которой три блока обернуты в один и тот же обработчик проста, только так оно отрабатывает правильно. В Chrome, Mozilla работает все нормально.

READ ALSO
Индексация сайта на vue.js

Индексация сайта на vue.js

ЗдравствуйтеВопрос, возможно, глупый, но меня, как новичка, это очень интересует

542
Вопрос по поводу setState() в react

Вопрос по поводу setState() в react

ЗдравствуйтеЯ хотел спросить по поводу поведения метода setState в react

398
Как переключать слайды в owl-carousel стрелками клавиатуры?

Как переключать слайды в owl-carousel стрелками клавиатуры?

В документации к библиотеке не нашел реализации прокрутки слайдов стрелками клавиатурыКак это можно реализовать? Нужно чтобы при нажатии...

513
Первый элемент с классом

Первый элемент с классом

Подскажите, где ошибся

282