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); }Помогите плиз. |
Решение нашел. Ответили на форуме поддержки. Может кому пригодится.
Вот эту часть кода. 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 } }); |
Часовой пояс GMT +3, время: 00:03. |