Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Применение библиотек > Как cоздать собственную ф-цию с обратным вызовом |
Автор: numerovan 30.8.2010, 19:13 |
Здравствуйте, помогите решить проблему : создать свою функцию с обратным вызовом, т.е. имею ф-ию f1() , каторую буду вызывать после окончании выполнения созданной мною новой функции f2(). |
Автор: ksnk 30.8.2010, 19:40 |
Откуда берется f2 и/или каким образом она создается? Почему нельзя в текст создаваемой функции влепить вызов f1? |
Автор: numerovan 30.8.2010, 19:48 | ||||
Допустим я хочу создать новую функцию
как такое сделать ? Фукнция создаётся обычным способом. В текст нельзя влепить так как нужно точно знать что myFn_2() выполнила всё что ей сказанно и далее нужно выполнение ф-ии myFn_1(), а не перемешивалось выполнение программы |
Автор: ksnk 30.8.2010, 20:03 | ||
? |
Автор: numerovan 30.8.2010, 20:52 | ||||
Спасибо за ответ, но хочу огорчить что есть более правильный подход к этому решению. |
Автор: bars80080 30.8.2010, 21:33 |
понял ksnk? ![]() |
Автор: ksnk 30.8.2010, 21:57 | ||
Хотелось бы огорчится. ![]() Код будет? |
Автор: numerovan 30.8.2010, 22:54 |
Bars80080 , вроде ты на все вопросы знаешь ответ , помог бы с решением ... |
Автор: bars80080 31.8.2010, 14:18 | ||||
а я не понял вопроса. максимум что можно представить по задаче, так ksnk озвучил качественное решение, я сам таким пользуюсь послушайте, если просят повторить вопрос, то лучше не пытаться вновь его выразить абстрактными идеями, а описать конкретную задачу. вот у меня к примеру была такая. написал я универсальную функцию, которая отправляла запросы по аяксу: ajaxQuery(url, query, method); возник вопрос, как разбирать приходящий ответ, ведь функции-обработчики каждый раз будут разные. ответ простой, передаём и само имя обработчика:
внутри функции ajaxQuery обработчик вызывается:
то есть при приёме ответа будет вызвана функция myFunc1(rq.responseText) всё ясно и чётко, работает отлично. на твой вопрос могу предложить только это, то есть тот же самый пример ksnk |
Автор: numerovan 4.9.2010, 00:25 | ||
в jQuery есть функция, допустим, fadeOut() , сами знаете что на обёрнутый набор элементов она "растворяет" их , к примеру
и сколько бы я времяни не поставил на растворение объекта, я точно знаю что по завершению вызовиться Alert. Вопрос: как разработчики организовали возможность обратного вызова функции в функции ? |
Автор: ksnk 4.9.2010, 00:36 | ||
Будешь смеятся, но примерно так как я уже писал ;) Это и был огорчительный для меня пример? |
Автор: numerovan 4.9.2010, 21:01 | ||||||||||
вот я и хочу так сделать
помоему тут нужно ещё подумать ... Так значит приходим к выводу что подобное делается так как сказал ksnk ?
Хотите сказать что если написать подобное
функция b() выполниться в последнию очередь ? Помоему нет. Даже если и так
она не вызовиться последней, в данном примере функция myFn выполнит $("#id").fadeOut("10000"), начнётся затухание, после выполнит ф-ию b(), а когда пройдёт 10 секунд то тогда ф-ия myFn закончит свою работу ... Я бы хотел сделать в следующем порядке, чтоб вначале закончилась ф-ия $("#id").fadeOut("10000"), хоть и 20 секунд бы стояло, то после чтоб запустилась ф-ия b() |
Автор: ayax2005 4.9.2010, 21:58 |
Два раза перечитал тему с самого начала. Уважаемый, numerovan, вам бы определиться чего вы хотите добиться и зачем, а уже потом людям моск и3ь. |
Автор: ksnk 4.9.2010, 22:47 | ||
если предварительно почитать описание функции fadeOut, то можно заметить у нее несколько параметров, кроме первого и методом не очень сложного умозаключения породить примерно такой код
Правда после того, как оно заработает, неплохо бы почитать что-нибудь про замыкания, иначе непонимание будет расти и мешать развитию ![]() |
Автор: numerovan 8.9.2010, 21:19 |
тема ещё не закрыта ... я представлял себе на подобие конструктора и деструктора, в качестве деструктора, служила бы та функция про которую я писал ... Прошу прощения, если я что-то не правильно написал ... будем двигаться дальше. |
Автор: doook 8.10.2010, 08:20 |
Тему уже пора закрывать, тут я нашёл ответы на все вопросы =) numerovan если что то не понят спроси меня может у меня получится тебе объяснить? ![]() |