|
|
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
Есть функция навигации(например), которая возвращает true или false(можно или нет пускать на след. страницу), в ней должен быть некий конфирм - запрос о предложении отменить все изменения и перейти на след. страницу или же остаться на ней для исправления ошибок. Дак вот если делать стандартным методом window.confirm то все хорошо, потому что происходит приостановка выполнения кода и ожидание ввода пользователя и после этого возвращаем true или false. Но я хочу немного приукрасить и использовать один из многих jquery alert и соответсвенно в них не происходит приостановки а код выполняется дальше, хотя пользорватель еще не нажал ни Да ни Нет. и после нажатия на Да происходит колбэк ф-я которая что то делает, но оп факту уже false не возвратишь... Контекст выполнения другой, да и тот первоначальный код давно уже выполнился. Как быть в данных ситуациях? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 19:02 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
kasikКак быть в данных ситуациях?Воспользоваться поиском по форуму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 19:05 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
это понятно, но я не знаю по какому слову или словосочетанию. Как вес описанное запихать в два-три слова? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 19:11 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
а кому надо вернуть true или false? событию onsubmit формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 19:22 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
Есть функция навигации(например).... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 19:24 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
а, невнимательно прочитал, извиняюсь попробуйте так: 1) за первым разом вернуть false 2) когда нажали "Да", дернуть функцию еще раз со специальным аргументом "не спрашивать юзера" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 19:29 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
дак от false будет зависеть дальнейшее ветвление кода, и он уже уйдет не тудка куда необходимо. в топике так никуда и не пришли! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 19:31 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
код Ваш? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 19:34 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
где? в той теме? нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 23:59 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
может как то использовать синхронный ajax запрос для данной цели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 00:01 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
я имел в виду код "функции навигации" жаль был бы код Ваш - можно было бы на части разделить и вторую часть в callback засунуть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 00:03 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
kasikможет как то использовать синхронный ajax запрос для данной цели?при чем тут ajax Вы ж не с сервером общаетесь, а с юзером ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 00:05 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
это да, но просто мысли как приостановить выполнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 00:08 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
ф-я навигации очень элементарна - условие и return false или return true, но если мы пошли по ветви false должен быть запрос (отменить изменение) и если соглашаемся то return true, иначе остаемся на false. Так что, что тут разбивать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 00:18 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
kasikф-я навигации очень элементарна - условие и return false или return true, но если мы пошли по ветви false должен быть запрос (отменить изменение) и если соглашаемся то return true, иначе остаемся на false. Так что, что тут разбивать...Не хотите разбивать, используйте window.confirm. Не хотите использовать window.confirm, разбивайте код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 10:25 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
kasikможет как то использовать синхронный ajax запрос для данной цели?Не советую. Пользователь фиг нажмёт кнопку в Вашем jquery alert, т.к. браузер подвесится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 10:47 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
skyANA, Согласен так и будет, это в порядке бреда. Значит можно забыть про jquery alert'ы получается, а использовать только браузерные возможности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 10:57 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
kasikЗначит можно забыть про jquery alert'ы получается, а использовать только браузерные возможности.Ну это Вам решать. К примеру у нас в системе 100500 подобных alert-ов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 11:11 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
Вообщем решил вопрос так(примерно как говорил Паганель): есть глобальный флаг Код: javascript 1. показываю алерт и ф-я возвращает false, если юзер нажимает Да(сброс изменений и переход на другую страницу), то flag = 1 и снова вызываем эту ф-ю навигацию, в начале которой вставил проверку - Код: javascript 1. 2. 3. 4. 5. 6. не знаю на сколько это лаконично и "правильно", но цель достигнута, всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 12:10 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
kasik, логично вызывать "Действие которое необходимо было сделать если бы была нажата Да.", если юзер нажимает Да, а не "снова вызываем эту ф-ю навигацию, в начале которой вставил проверку". Так можно завести 100500 флагов и одну функцию DoWork() с кучей проверок, фигли. И постоянно её вызывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 12:37 |
|
||
|
Приостановка выполнения в функции
|
|||
|---|---|---|---|
|
#18+
Согласен, переделал без флага. Но все равно такой вариант это залезание в "кишки" и выполнение того кода, который и так бы выполнился, если бы была приостановка. А если бы мне не была известна API которую я бы мог повторить, тогда только window.confirm? И хоть данный вариант и является рабочий, как то внутренне он мне кажется не совсем "правильным" что ли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 13:12 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38189442&tid=1448571]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
177ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
2ms |
| others: | 219ms |
| total: | 518ms |

| 0 / 0 |
