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, время: 03:29. |