powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Приостановка выполнения в функции
21 сообщений из 21, страница 1 из 1
Приостановка выполнения в функции
    #38188597
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть функция навигации(например), которая возвращает true или false(можно или нет пускать на след. страницу), в ней должен быть некий конфирм - запрос о предложении отменить все изменения и перейти на след. страницу или же остаться на ней для исправления ошибок.

Дак вот если делать стандартным методом window.confirm то все хорошо, потому что происходит приостановка выполнения кода и ожидание ввода пользователя и после этого возвращаем true или false. Но я хочу немного приукрасить и использовать один из многих jquery alert и соответсвенно в них не происходит приостановки а код выполняется дальше, хотя пользорватель еще не нажал ни Да ни Нет. и после нажатия на Да происходит колбэк ф-я которая что то делает, но оп факту уже false не возвратишь... Контекст выполнения другой, да и тот первоначальный код давно уже выполнился.

Как быть в данных ситуациях?

Спасибо
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38188601
Фотография Имя пользователя1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikКак быть в данных ситуациях?Воспользоваться поиском по форуму.
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38188612
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это понятно, но я не знаю по какому слову или словосочетанию. Как вес описанное запихать в два-три слова?
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38188631
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а кому надо вернуть true или false?
событию onsubmit формы?
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38188637
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть функция навигации(например)....
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38188646
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, невнимательно прочитал, извиняюсь

попробуйте так:
1) за первым разом вернуть false
2) когда нажали "Да", дернуть функцию еще раз со специальным аргументом "не спрашивать юзера"
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38188653
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дак от false будет зависеть дальнейшее ветвление кода, и он уже уйдет не тудка куда необходимо.

в топике так никуда и не пришли!
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38188658
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
код Ваш?
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38188852
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где? в той теме? нет.
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38188853
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может как то использовать синхронный ajax запрос для данной цели?
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38188854
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я имел в виду код "функции навигации"
жаль
был бы код Ваш - можно было бы на части разделить
и вторую часть в callback засунуть
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38188855
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikможет как то использовать синхронный ajax запрос для данной цели?при чем тут ajax
Вы ж не с сервером общаетесь, а с юзером
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38188857
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это да, но просто мысли как приостановить выполнение.
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38188861
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ф-я навигации очень элементарна - условие и return false или return true, но если мы пошли по ветви false должен быть запрос (отменить изменение) и если соглашаемся то return true, иначе остаемся на false. Так что, что тут разбивать...
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38189107
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikф-я навигации очень элементарна - условие и return false или return true, но если мы пошли по ветви false должен быть запрос (отменить изменение) и если соглашаемся то return true, иначе остаемся на false. Так что, что тут разбивать...Не хотите разбивать, используйте window.confirm. Не хотите использовать window.confirm, разбивайте код.
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38189151
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikможет как то использовать синхронный ajax запрос для данной цели?Не советую. Пользователь фиг нажмёт кнопку в Вашем jquery alert, т.к. браузер подвесится.
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38189174
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Согласен так и будет, это в порядке бреда.

Значит можно забыть про jquery alert'ы получается, а использовать только браузерные возможности.
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38189196
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikЗначит можно забыть про jquery alert'ы получается, а использовать только браузерные возможности.Ну это Вам решать. К примеру у нас в системе 100500 подобных alert-ов.
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38189365
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем решил вопрос так(примерно как говорил Паганель):
есть глобальный флаг
Код: javascript
1.
var flag = -1


показываю алерт и ф-я возвращает false, если юзер нажимает Да(сброс изменений и переход на другую страницу), то flag = 1 и снова вызываем эту ф-ю навигацию, в начале которой вставил проверку -
Код: javascript
1.
2.
3.
4.
5.
6.
if (flag == 1 )
{
  flag = -1;
  // Действие которое необходимо было сделать если бы была нажата Да.
  return true;
};



не знаю на сколько это лаконично и "правильно", но цель достигнута, всем спасибо!
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38189442
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasik, логично вызывать "Действие которое необходимо было сделать если бы была нажата Да.", если юзер нажимает Да, а не "снова вызываем эту ф-ю навигацию, в начале которой вставил проверку".
Так можно завести 100500 флагов и одну функцию DoWork() с кучей проверок, фигли. И постоянно её вызывать.
...
Рейтинг: 0 / 0
Приостановка выполнения в функции
    #38189541
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен, переделал без флага.
Но все равно такой вариант это залезание в "кишки" и выполнение того кода, который и так бы выполнился, если бы была приостановка. А если бы мне не была известна API которую я бы мог повторить, тогда только window.confirm?
И хоть данный вариант и является рабочий, как то внутренне он мне кажется не совсем "правильным" что ли...
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Приостановка выполнения в функции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]