Как я могу вернуть сообщение об исключении только один раз в jQuery каждой функции? - PullRequest
0 голосов
/ 08 мая 2019

Я использую "Tempus Dominus Bootstrap 4" для манипуляции временем.

Сегодня я реализовал функцию очистки всех входных значений при нажатии определенной кнопки.

Однако в этом плагине есть ошибка, похоже, при выполнении функции очистки возникает ошибка.

Но у меня нет времени, чтобы решить ее сейчас, поэтому я хотел бы броситьисключение и обработайте его.

С другой стороны, я не очень хорошо себя чувствую, так как ошибки покрывают окно консоли.

Поэтому я хочу, чтобы исключения генерировались только один раз в первый раз.

Итак, я написал следующий код.

var errorStack = 0;

$('.btn_clear_daterange').click(function(){
  var target = $(this).data('target'); // e.g. ".daterange_fields"
  $(target).each(function(){
    try {
      $(this).datetimepicker('clear');
    }
    catch(e){
      errorStack++;

      if(errorStack === 1){
        console.warn("clear function has a issue. \n check the follow link: https://github.com/tempusdominus/bootstrap-4/issues/34");
        console.error(e);
      }
    }
  });
});

Я надеюсь сделать так.

$('.btn_clear_daterange').click(function(){
  var target = $(this).data('target');
  $(target).each(function(){
    try {
      $(this).datetimepicker('clear');
    }
    catch(e){
      return e;
    }
  });

  if(e && e.count === 1){
    console.warn("clear function has a issue. \n check the follow link: https://github.com/tempusdominus/bootstrap-4/issues/34");
    console.error(e);
  }
});

Как мне это сделать?спасибо.

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Вы можете играть с boolean флагами в этом случае.попробуй вот так.

$('.btn_clear_daterange').click(function(){
    var  error = false;
    var target = $(this).data('target');
    $(target).each(function(){
        try {
            $(this).datetimepicker('clear');
        }
        catch(e){
            error = true;
            return e;
        }
    });

    if(error){
        console.warn("clear function has a issue. \n check the follow link: https://github.com/tempusdominus/bootstrap-4/issues/34");
        console.error(e);
    }
});
0 голосов
/ 08 мая 2019
$('.btn_clear_daterange').click(function () {
    var target = $(this).data('target');
    var error = null;
    $(target).each(function () {
        try {
            $(this).datetimepicker('clear');
        }
        catch (e) {
            error = e;
            return false; // break each https://stackoverflow.com/questions/1784780 
        }
    });

    if (error  && error.count === 1) {
        console.warn("clear function has a issue. \n check the follow link: https://github.com/tempusdominus/bootstrap-4/issues/34");
        console.error(e);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...