[Из песочницы] Плагин 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↑
↓
Вы когда писали статью, не чувствовали праведный гнев надвигающийся на вас?