Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.10.2011, 17:10
Аватар для Andres
Новичок на форуме
Отправить личное сообщение для Andres Посмотреть профиль Найти все сообщения от Andres
 
Регистрация: 30.08.2009
Сообщений: 8

YUI 3 проблема с ajax
Обнаружилась не совсем понятная проблема с повторными запросами.
При первом обращении к 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);
        }
Помогите плиз.

Последний раз редактировалось Andres, 01.10.2011 в 17:12.
Ответить с цитированием
  #2 (permalink)  
Старый 02.10.2011, 13:38
Аватар для Andres
Новичок на форуме
Отправить личное сообщение для Andres Посмотреть профиль Найти все сообщения от Andres
 
Регистрация: 30.08.2009
Сообщений: 8

Решение нашел. Ответили на форуме поддержки. Может кому пригодится.
Вот эту часть кода.
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
                }
            });
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ajax $.post вместо json проблема данные не приходят Sadist_dead AJAX и COMET 2 12.07.2012 17:59
Помощь по Ajax и YUI! gephaest AJAX и COMET 1 10.09.2011 15:25
Проблема с ajax Артём Финк AJAX и COMET 7 07.07.2011 21:54
Проблема с событиями после ajax запроса Mirgorod AJAX и COMET 5 12.06.2010 18:24
Проблема с Ajax запросом в IE и Opera flash_uz AJAX и COMET 0 30.04.2009 15:08