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". Вероятно сессия не успевает записаться, до срабатывания ссылки. Как быть? |
Ну теперь перехода по ссылке нет. Переход я запрещал, для отладки скрипта. Даже если после get() я поставлю редирект, то мне же всё равно нужен колбэк?
$(this).click(function(e) { e.preventDefault(); // 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"); }); // window.location.replace("http://site.ru"); }); |
Я не понимаю, почему у меня выдаёт ошибку, если я делаю так:
$(this).click(function(e) { e.preventDefault(); // store view name in session? var s_url = "/paging_api_save_active_state_id/ajax/collection04"; $.get(s_url) .done(function() { console.log( "Data Saving"); // window.location.replace("http://site.ru"); }); }); Uncaught TypeError: undefined is not a function В документации вроде так написано: http://api.jquery.com/jquery.get/ |
Часовой пояс GMT +3, время: 01:24. |