Расширение функции jQuery $ .post () - PullRequest
0 голосов
/ 26 мая 2011

Я уже некоторое время пользуюсь jQuery, но я никогда не был слишком продвинут с ним.

Как я могу расширить функцию $ .post (), чтобы добавить к ней свои собственные функции?

Главное, что меня интересует в данный момент - это вызовы $ .log (), чтобы я мог видеть, что происходит на iPad, но меня также интересовали бы некоторые значки «загрузки» и может быть, тоже смотрю на кеширование.

Ответы [ 2 ]

4 голосов
/ 26 мая 2011

Я сделал то же самое с методом jQuery $ .ajax. Я создал новый метод верхнего уровня для объекта jQuery:

$.extend({ myAjax: function(options) { 

  // code I want to run before the jQuery AJAX,
  // I can access and alter the options passed in

  var jqXHR = $.ajax(myAjax);

  // code I want to run after the jQuery AJAX
  // I can also run jQuery deferred code, e.g: jqXHR.done(function() { something });

});

Затем вы можете позвонить по этому номеру:

var options = {
  url: "http://example.com",
  type: "GET",
  dataType: "JSONP"
}

$.myAjax(options);

Где я обернул свою дополнительную функциональность вокруг функции jQuery AJAX. Это позволило мне выбирать между использованием расширенной функции или переходом к базовой функции jQuery. Это также обеспечивает совместимость с плагинами, существующим кодом и т. Д.

2 голосов
/ 26 мая 2011

Значки загрузки приведены в .ajaxStart () и .ajaxStop () .

Для определения универсального действия, которое нужно выполнить после любого $.post()Вам, вероятно, не нужно делать что-то причудливое.Просто используйте $. AjaxSetup () , чтобы определить обработчики успеха / ошибок для ведения этого журнала после каждого запроса, в дополнение к обработчику, который регистрирует каждый конкретный $.post().

Также относится котладка на iPad, посмотрите JSConsole .Это безумно полезно для отладки JavaScript на устройствах, где вы не можете использовать инструменты отладки в браузере, такие как разработка мобильных приложений.

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