confirm срабатывает раньше кода выше
Вот код:
comment.classList.add('comment-delete'); let questionDelete = confirm("Удалить комментарий?"); if (questionDelete) { ... Оформляю удаляемый комментарий, добавляя ему методом classList.add класс comment-delete. Это нужно чтобы подсветить какой комментарий удаляется. После добавления класса идёт запрос confirm для подтверждения. Проблема в том что confirm срабатывает раньше чем элементу добавляется класс, то есть раньше кода находящегося выше. Как это обойти? сеттаймаут ставить для конфирма или есть какие другие решения? |
MC-XOBAHCK,
строка 2 document.documentElement.clientWidth; |
рони, я извиняюсь, не понял вашего намёка.
Нужно вставить эту строку чтобы она оттянула выполнение confirm ? |
MC-XOBAHCK,
попробуйте и напишите результат. |
Если вставляю эту строку, не помогает. Классы добавляются только после закрытия диалогового окна. Ну а там уже на автомате идёт ajax-запрос и удаление комментария.
Единственное, у меня в оригинале добавляются три класса: comment.classList.add('comment-delete', 'border', 'border-danger'); |
MC-XOBAHCK,
увы, не работает, переменная формируется раньше. |
MC-XOBAHCK, попробуйте MutationObserver - следить за изменением класса, затем выполнять confirm.
|
laimas, спасибо вам за идею! Точно, мутатор должен решить эту задачу.
|
Цитата:
|
MC-XOBAHCK,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .comment-delete{ background-color: #FF00FF; } </style> </head> <body> <div id="comment">comment</div> <script> comment.classList.add('comment-delete'); async function wait() { await new Promise(resolve => setTimeout(resolve, 100)); return confirm("Удалить комментарий?"); } function f() { wait().then(result => alert(result)); } f(); </script> </body> </html> |
Часовой пояс GMT +3, время: 01:35. |