Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> YUI 3 проблема с ajax 
:(
    Опции темы
Andres
Дата 1.10.2011, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 30.8.2006

Репутация: нет
Всего: нет



Обнаружилась не совсем понятная проблема с повторными запросами.
При первом обращении к ajax все нормально, при повторном Y.one('#'+div) возвращает два значения и если при втором запросе был указан див отличающийся от первого обновляется содержимое обоих дивов. При этом функции передается правильный айди дива для изменения контента. Вот функции инициализации ссылок и собственно самого ajax запроса.
Код


        function ajax_links_init(){
            if (Y.one('.ajax')){
                Y.all('.ajax').detach();
                Y.on("click", function(e){e.preventDefault();ajax(this);}, ".ajax");
            }
        }
        function ajax(link){
            var div = link.get('rel');
            var handleSuccess = function(ioId, o){
              if(o.responseText !== undefined){
                  try {
                      var fmajax = Y.JSON.parse(o.responseText);
                  }
                    catch(e) {
                        alert('Ошибка в запросе');
                    }
                    if (fmajax.tit != undefined){
                        document.title=sitename+' :: '+fmajax.tit;
                    }
                    if (fmajax.alt != undefined){
                        alert(fmajax.alt);
                    }
                    if (fmajax.text != undefined){
                        Y.one('#'+div).setContent(fmajax.text);
                        console.log(Y.one('#'+div),'#'+div);
                    }
                    ajax_links_init();
              }
           };
           var handleFailure = function(ioId, o){
                if(o.responseText !== undefined){
                    alert(o.responseText);
               }
           };
           Y.on('io:success', handleSuccess);
           Y.on('io:failure', handleFailure);
           var cfg = {
              method: "POST"
           };
            var request = Y.io(link.get('href')+'?using_ajax=1', cfg);
        }
Помогите плиз.


PM MAIL   Вверх
Andres
Дата 2.10.2011, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 30.8.2006

Репутация: нет
Всего: нет



Решение нашел. Ответили на форуме поддержки. Может кому пригодится.
Вот эту часть кода.
Код

           Y.on('io:success', handleSuccess);
           Y.on('io:failure', handleFailure);
           var cfg = {
              method: "POST"
           };
            var request = Y.io(link.get('href')+'?using_ajax=1', cfg);

Меняем на 
Код

            Y.io(link.get('href')+'?using_ajax=1', {
                method: "POST",
                on: {
                    success: handleSuccess,
                    failure: handleFailure
                }
            });


Это сообщение отредактировал(а) Andres - 2.10.2011, 12:37
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0580 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.