![]() |
Не отрабатывает проверка.
Есть кнопка у которой есть следующий код:
if ( myFunction() ) { trace ("ok"); } else { trace ("oops"); } код функции: function getFailedLessons (ChapterID) { trace("getFailedLessons:"); query = new LoadVars(); query.action = "getFailedLessons"; query.ChapterID = ChapterID; query.sendAndLoad(_root.scriptName, query, 'POST'); query.onLoad = function() { if (this.FailedLessons != undefined) { return false; } else { return true; } }; } Как сделать так, чтобы пока функция не отработала проверка в кнопке не срабатывала, а то получается так, что данные еще не получены, а проверка уже срабатывает и выводит oops |
будь проще :)
убрать проверку и всё что там происходит с кнопки, и поместить это всё прямо в онЛоад. а на кнопке написать только вызов getFailedLessons (ChapterID); |
Можно конечно и так сделать, но тогда теряется весь смысл, функция не должна знать ничего о других, её задача получить данные, обработать их вернуть результат. А приложение уже должно в зависимости от результата реагировать...
У меня таких функций несколько предполагается, не могут же все они быть друг в друге ? |
Цитата:
ты уже нарушил принцип инкапсуляции, как только стал пользоваться в функции внешней переменной: query = new LoadVars(); - так какая разница ? :) я обычно передаю в функцию, которая стартует загрузку чего-то в качестве параметра ссылку на функцию, которой надо отдать результат операции, каков бы он ни был. если хочешь чтобы всё было чисто - делай так. но надо ли оно тебе ? :) Код:
loadData = function (source, parser) {LoadVars.decode(query_string) |
| Часовой пояс GMT +4, время: 07:16. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.