jquery $('#id').ready
Я использую вот такую конструкцию:
$('#' + id).submit(); $('#ifrTransp').ready(function () { $.getJSON("http://thelongesttest.appspot.com/1.html?id=" + id + "&callback=?", function(data) { alert(decodeURI( data.id)); }); }); Для передачи данных на сервер через фрейм "ifrTransp'". function(data) { alert(decodeURI( data.id)); }); В будущем должно проверять получил ли сервер данные, не было ли ошибок. То есть мне нужно создать этот запрос сразу после передачи данных через ифрейм. Но у меня такое чувство, что этот ready срабатывает раньше чем форма уходит на сервер. Я прав? :blink: |
И еще это, мне ready применять к ифрейму или странице?
|
дело в том, что ready вешает событие на document (текущий)
что это за iframe? Почему бы в нем не прописать ready? |
Что-то в этом духе:
<iframe name="qtroll_ifrTransp" id="qtroll_ifrTransp" width="100%" height="300"></iframe> <form name="qtroll_question" enctype="application/x-www-form-urlencoded" method="post" action="http://thelongesttest.appspot.com/cpanel/" id='qtroll_questionFrmId' target="qtroll_ifrTransp"> <!-- {qtroll_questionFrm} --> </form> отсылаю так: function qtroll_sbm(id) { $('#' + id + ' > #qtroll_sbmBtn').attr('style', 'color:#000'); $('#' + id + ' > #qtroll_sbmBtn').attr('value', 'sending...'); var seed = hex_md5( new Date() ); $('#' + id + ' > #qtroll_querySeed').attr('value', seed); $('#' + id).submit(); $('#qtroll_ifrTransp').ready(function () { $.getJSON("http://thelongesttest.appspot.com/cpanel/?id=" + encodeURI(seed) + "&callback=?", function(data) { alert(seed + " " + decodeURI(data.seed)); if ( ('["' + seed + '"]') == decodeURI(data.seed) ) { $('#' + id + ' > #qtroll_sbmBtn').attr('style', 'color:#060'); $('#' + id + ' > #qtroll_sbmBtn').attr('value', 'ok!'); } else { $('#' + id + ' > #qtroll_sbmBtn').attr('style', 'color:#F00'); $('#' + id + ' > #qtroll_sbmBtn').attr('value', 'error!'); } }); }); } Это черновой вариант. Идея такова: Запекаю в невидимое поле формы хеш даты. Отправляю форму через ифрейм транспорт на удаленный сервер( не тот откуда скрипт грузится) Всё это дело пакуется в бд. Как только транзакция завершена - посылаю на тот же сервер ГЕТ запрос, который содержит тот же сиид( дату публикации формы) Если сииды совпадают - значит, по идее, всё произошло нормально. Планирую делать хеш не времени а сериализированной формы, так логичнее... Хелп ме! де мне утыкнуть редю :) |
Цитата:
|
Можно. Как это событие называется, что бы я его добавил? Раз $('#qtroll_ifrTransp').ready не то, что нужно..
А что если $('#qtroll_ifrTransp').load ? Или тоже не вариант ? |
Ухты! А .load как раз то, что нужно делает. Странно, что в спеках по jquery не видел его. Видимо, потому-что он стандартный метод.
|
не знаю, как тебе $('#qtroll_ifrTransp').load помог
а по поводу в iframe: переносишь $('#qtroll_ifrTransp').ready в iframe, а для обращения ко внешнему документу используешь top.document в качестве контекста для $ UPD: уже понял о каком load идет речь (в jQuery совпадает название функций для назначения обработчика события load и для загрузки информации через ajax) |
Часовой пояс GMT +3, время: 10:03. |