У меня есть яваскрипт функции, которая делает две вещи:Javascript подтверждения предотвращает обновление экрана в Chrome
- Изменение в таблицах строка цвета фона
- Выдает подтверждения() всплывающее окно с просьбой пользователя подтвердить удаление из (подсвечивается) строка
В Firefox отлично работает. В Chrome появляется всплывающее окно. Но фон не меняет цвет, пока ПОСЛЕ того, как я отклоню окно confirm(), которое вызывает поражение цели, позволяя пользователю узнать, какая строка должна быть удалена.
Я уверен, что это связано с асинхронным характером javascript. Но мне нужно знать, как обойти это. Прямо сейчас, две строки кода:
$(icon).closest("tr").css("background-color", "yellow");
if (confirm(message)) {.......}
Что мне нужно сделать, чтобы убедиться, что строка желтого цвета, когда отображается всплывающее окно, и не ждать, чтобы изменить к желтому, пока после того, как всплывающее окно уходит ? Я могу попробовать задержки и т. Д. Но это хватит на соломинку. Есть ли «правильный» способ справиться с этим?
Опять же, отлично работает на Firefox .... nada на Chrome. Не пробовали другие браузеры.
Спасибо. Jerry
Спасибо за быстрый ответ. К сожалению, requestAnimationFrame не оказал никакого эффекта. Однако я заменил его на: SetTimout (function() { if (подтвердить (сообщение)) {...... } }, 100); и это сработало. Еще раз спасибо за то, что указал мне в правильном направлении. –
@JerryMalcolm Попробуйте использовать 'requestAnimationFrame()' дважды. Я подозреваю, что он будет более надежным, чем нормальная задержка. – Brad