Тема: callback $.get()
Показать сообщение отдельно
  #1 (permalink)  
Старый 20.09.2014, 22:12
Профессор
Отправить личное сообщение для Faab Посмотреть профиль Найти все сообщения от Faab
 
Регистрация: 16.04.2012
Сообщений: 310

callback $.get()
Из php-скрипта (cms Drupal), я добавляю JS-скрипт к странице, который должен записать информацию в сессию при собитии клика по ссылкам (.view-id-collections a). При клике запускается функция get(), где по ссылке срабатывает другой php-скрипт, в котором происходит запись в сессии. Затем я получаю вывод в консоль: "paging api View link has been clicked: session saved". Сам переход не происходит, так я для отладки поставил return false; Информация записана в сессию, всё нормально.

(function ($) {
  // Add logic to Drupal.behaviors - so it gets triggered even after AJAX page update
  Drupal.behaviors.pagingApiSaveActiveView = {
    attach: function (context, settings) {
       $(".view-id-collections a").once("pagingapi", function(){
        $(this).click(function() {
          // store view name in session?
          var s_url = "/paging_api_save_active_state_id/ajax/collection01";
          $.get( s_url, function( data ) {
            console.log("paging api View link has been clicked: session saved");
          });
          return false;
        });
      });
    }
  };
})(jQuery);


Но проблема в том, что если я убираю return false;, то сессия пуста, хотя я получаю в консоле "paging api View link has been clicked: session saved". Вероятно сессия не успевает записаться, до срабатывания ссылки.

Как быть?
Ответить с цитированием