@kostarus61

Замена текста плагин Noty?

Доброй ночи!

Начну сразу с сути проблемы. Использую jQuery плагин Noty для вывода уведомлений. В нем есть такая функция как setText - Замена текста и setType - Замена типа. Мне нужно сделать так, что бы если я нажимаю на одну кнопку несколько раз, плагин не выводил несколько раз уведомления с задержкой, а заменял текст в уже открытом уведомлении.

Делаю следующим образом:
function send(){
   var n; // Объявляю переменную для Noty
   $.ajax({
      type: "POST",
      dataType: "json",
      ......
      success: (function(){
         return function(data){
            if(n){      // Вся проблема здесь как проверить есть ли открытое уведомление или нет?
               n.setText(data.message);       // Тут текст на который надо заменить в текущем уведомлении
               n.setType(data.status);       // Тут тип
            } else {      // Ну и если нету открытого то выводим как обычно
               n = noty({
                  text: data.message,
                  type: data.status,
                  .........
                  callback: {
                     afterClose: function(){ n=null; },      // По закрытию уведомления обнуляем значение n
                  }
               });
            }
         };
      })()
   })
   return false;
}


Подскажите кто знает что и где подправить или модет я вообще не так делаю?
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ответы на вопрос 1
@kostarus61 Автор вопроса
Вообщем сделал следующим образом, window.n = noty({:
if(typeof(n) !== "undefined"){
               n.setText(data.message); 
               n.setType(data.status); 
            } else { 
               window.n = noty({
                  text: data.message,
                  type: data.status,
                  .........
                  callback: {
                     afterClose: function(){  delete n; },      // По закрытию уведомления обнуляем значение n
                  }
               });
            }


Является ли правильным такое объявление переменной? По сути ведь это глобальная переменная, что не есть хорошо.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
16 июн. 2024, в 01:07
600 руб./в час
15 июн. 2024, в 23:20
50000 руб./за проект
15 июн. 2024, в 23:15
4000 руб./за проект