Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Применение библиотек > jQuery ajax сложная конструкция |
Автор: Veroonya 25.12.2012, 16:57 | ||
При покидании окна ввода текста id=autoSign вызывается функция, которая подтягивает данные ajax-ом, связанные с введенным текстом, на базе этих данных выполняется функция, в которой снова вызывается ajax, для получения еще одного набора данных.
При добавлении alert (result); данные появляются в итоге там где нужно, при отсутвии alert данные не появляются. Подумываю, что это как то связано с тем, что когда выполняется второй ajax первый уже завершил свое выполнение. Подскажите, как реализовать? |
Автор: Aliance 25.12.2012, 18:16 | ||
Нужно прочитать про замыкания и (а)синхронность запросов в JS. Обычно я кидаю http://shamansir.github.com/JavaScript-Garden/#function.closures (особенно раздел "Замыкания внутри циклов"), т.к. там как мне кажется наиболее просто объяснено то, что нужно знать. Решение: В rndrTireModel нужно передавать ID элемента, куда нужно вставлять результат, и далее вставлять его после выполнения второго запроса. Примерно это будет выглядеть так:
|
Автор: Veroonya 25.12.2012, 18:54 | ||
спс, сама не додумалась |
Автор: Veroonya 25.12.2012, 19:12 | ||
Когда так делаешь, дает везде одинаковый результат |
Автор: Aliance 25.12.2012, 19:35 |
1. В консоле нужно проверить, действительно ли данные должны быть разными. 2. Если п. 1 не помог, то нужно показать весь новый код. |
Автор: Veroonya 25.12.2012, 20:38 | ||
В результате действительно должны быть разные значения. В итоге получается везде результат от последнего вызова функции (которой должен быть в result4);
|
Автор: Aliance 26.12.2012, 10:34 |
Veroonya, выше я приводил линк с указанием раздела, на который нужно обратить внимание. Вы его читали? Думаю, что для решения проблемы достаточно просто будет создать замыкание. |
Автор: Veroonya 27.12.2012, 16:32 |
всем спс нашла затуп в коде. Было обращение к элементу с "." $("#name.name"); А так делать нельзя |