JQuery AJAX: до события - PullRequest
       3

JQuery AJAX: до события

3 голосов
/ 01 января 2011

Я видел, как некоторые коллеги используют это в рельсах

    $('[data-once=true]').live('ajax:before', function(request, e) {

});

Однако я пытаюсь использовать его с jquery, и он не работает, это событие происходит с адаптером jquery rails?

Ответы [ 3 ]

4 голосов
/ 01 января 2011

Да, ajax:before - это событие jQuery, которое rails добавляет / запускает, хотя в последней версии это не ajax:beforeSend. Хотя в jQuery (ajax:before был до того, как агностика JS-инфраструктуры перешла на рельсы), вы можете просто присоединиться к нему глобально, используя ajaxSend глобальное событие , например:

$(document).bind('ajaxSend', function(e, request, options) {
  $('[data-once=true]').something();
});
2 голосов
/ 01 января 2011

Я не разработчик rails, поэтому я не уверен, как rails изменяет это уравнение, но именно так я бы прикрепил функцию к AJAX раньше в обычном ole 'JS:

$.ajax({
   beforeSend: function(){

     alert("Before");

   },
   complete: function(){

    alert("after");

   }
 });

Обратите внимание, что эти события срабатывают для всех запросов AJAX после этого. По сути, вы подписываетесь на объект AJAX.

Подробнее см. В документации jQuery AJAX Events .

1 голос
/ 01 января 2011

Это 'ajax:before' не является полезным событием для обработки .live(), если только вы не определили пользовательское событие с этим именем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...