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

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

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

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

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

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

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

Значит можно забыть про jquery alert'ы получается, а использовать только браузерные возможности.
...
Рейтинг: 0 / 0
19.03.2013, 11:11
    #38189196
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приостановка выполнения в функции
kasikЗначит можно забыть про jquery alert'ы получается, а использовать только браузерные возможности.Ну это Вам решать. К примеру у нас в системе 100500 подобных alert-ов.
...
Рейтинг: 0 / 0
19.03.2013, 12:10
    #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
19.03.2013, 12:37
    #38189442
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приостановка выполнения в функции
kasik, логично вызывать "Действие которое необходимо было сделать если бы была нажата Да.", если юзер нажимает Да, а не "снова вызываем эту ф-ю навигацию, в начале которой вставил проверку".
Так можно завести 100500 флагов и одну функцию DoWork() с кучей проверок, фигли. И постоянно её вызывать.
...
Рейтинг: 0 / 0
19.03.2013, 13:12
    #38189541
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приостановка выполнения в функции
Согласен, переделал без флага.
Но все равно такой вариант это залезание в "кишки" и выполнение того кода, который и так бы выполнился, если бы была приостановка. А если бы мне не была известна API которую я бы мог повторить, тогда только window.confirm?
И хоть данный вариант и является рабочий, как то внутренне он мне кажется не совсем "правильным" что ли...
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Приостановка выполнения в функции / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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