[Из песочницы] Плагин jQuery — jdDialog. Принцип «транзитных вызовов»

Комментарии (5)

  • 27 июня 2017 в 17:41

    +1

    Эпоха плагинов для jQ прошла уже… ну вобщем давно :)

    Плюс, вы никак не сделаете замену confirm () на кастомных окошках. Вот вообще никак, т.к. всплывающие html-окна не будут блокировать исполнение кода. То, что реализовано в статье — обычный callback.

    Максимально приближенный вариант будет что-то вроде:

    async function() { // Здесь выполняется наш код. Да, в async
        if (await jdDialog(...)) { // Ваша функция должна вернуть true
            ...
        }
    }
    

    Но такое поведение будет доступно только если вы реализуете промисы и только в async-функциях, само-собой.

    P.S. Советую взглянуть на библиотеку noty js
    Это то, что вам нужно, только с бОльшими возможностями.

  • 27 июня 2017 в 17:49

    0

    Спасибо за совет! Понятно, что есть новые технологии. Здесь решение несколько другой задачи — чуть-чуть подправить действующий проект согласно заданию. А код тем не менее если можно так сказать всё-таки «блокируется». Выводом в return. Для возобновления кода по выбору в диалоговом окне запускается заново, но то же самое диалоговое окно не генерируется, а возвращается «транзитом» выбор пользователя. В этом суть принципа.
    • 27 июня 2017 в 19:51

      0

      Смутил синтаксис if (…), посмотрел ваши исходники.
      Не делайте так:) Если кто-то будет потом поддерживать этот код, он повесится. Дважды, как и код.

      Поскольку заблокировать выполнение в JS не получится, вы решили «перекликивать» элемент. Это ужасное решение.

      1. Что если на клике висят и другие обработчики событий?
      2. Что если до if (jdDialog) есть каокй-то код?

      В обоих случаях код будет выполнен дважды.

      А если нужно вызвать диалог без клика? Ну и т.д.

  • 27 июня 2017 в 18:09

    0

    Noty.js не подходит. Вызов отличается от if (confirm ()) {}. Данный плагин разработан именно для того, чтобы сделать замену стандартному confirm.
  • 27 июня 2017 в 20:48

    0

    Вы когда писали статью, не чувствовали праведный гнев надвигающийся на вас?

© Habrahabr.ru