{JavaScript} Ожидание $(tag).click() пользователя внутри функции?

Здравствуй здравый коллективный разум.
На тему ожидания действия пользователя в внутри функции, нагуглил только то что браузер уходит в висячий режим и это вообще не по js-вский философии. Прошу дать совет если имеется способ это провернуть, либо точно ответить что такое невозможно.
Да, желательно ответ пнуть в сторону jQuery. Функция вызывается циклом, который может вызвать её многократно.
  • Вопрос задан
  • 2899 просмотров
Решения вопроса 1
iDennis
@iDennis
js работает асинхронно , но есть исключения: alert, prompt , cofirm , синхронный ajax и тд . Не блокируйте очередь событий.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
mlnkv
@mlnkv
JavaScript Developer
единственный вариант, когда скрипт останавливается и ожидется действие пользователя - это вызов функций alert(), confirm() и prompt()
Ответ написан
Комментировать
@stasmarkin
Server side java engineer
Надеюсь я правильно понял вопрос и отвечаю по теме.

1. В джаваскрипте модель многопоточных приложений не предусмотрена. Из этого следует, что возможности сказать одному потоку: "слыш, следи за пользователем, а потом шепни второму потоку, что пора действовать" нет, т.к. эти потоки (а на самом деле даже не потоки, а отложенные вызовы, стоящие в очереди) ничего друг про друга не знают. И, запустив программу в бесконечный цикл, вы повесите абсолютно все.

2. Обычно подобная задача (отклик на действие пользователя) в джаваскрипте решается коллбэками. Это функция, которая будет вызвана после выполнения основного действия или наступления какого-то ивента. В вашем случае (к сожалению, вы очень абстрактно описали задачу) я бы завершил работу функции в момент, когда можно начинать ожидать $(tag).click(), а в сам .click() передал бы коллбэк, который состоит из оставшейся части вашей функции.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы