我一直在使用jQuery一段时间了,但我从来没有过于先进。
如何扩展$ .post()函数以向其添加我自己的功能?
我现在感兴趣的主要内容是一些$ .log()调用,所以我可以看到iPad上发生了什么,但我也对一些“加载”图标感兴趣,也许正在看一些缓存。
答案 0 :(得分:4)
我用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函数之间进行选择。它还确保了与插件,现有代码等的兼容性。
答案 1 :(得分:2)
对于加载图标,请查看.ajaxStart()和.ajaxStop()。
要定义在$.post()
之后采取的通用操作,您可能也不需要做任何花哨的事情。除了每个特定$.post()
注册的处理程序之外,只需使用$.ajaxSetup()来定义成功/错误处理程序,以便在每个请求之后执行该日志记录。
此外,与在iPad上进行调试有关,请查看JSConsole。在您无法使用浏览器内调试工具(如移动开发)的设备上调试JavaScript非常有用。