试着写一个名为$ .myAjax的jQuery插件

时间:2012-03-17 22:33:03

标签: jquery

我开始看到我用于所有$ .ajax调用的模式,所以我想编写一个名为myAjax的jQuery插件:

var myXHR = $.myAjax(myURL, mySettings)

它将始终包含以下内容:

myXHR.done(function(result) {
    if (result.MSG) {
        $('#msg').html(result.MSG).addClass('alert alert-info');
    }
})
.fail(function(A,B,C) {
    $('#msg').html(C).addClass('alert alert-info');
});

我还想要包含我经常使用的默认值:

var ajaxDefaults = {};
ajaxDefaults.type= 'POST'
ajaxDefaults.dataType='json';
$.ajaxSetup(ajaxDefaults);

问:如何编写插件来执行这两项操作:

  1. 包含type和dataType的默认值
  2. 包含默认的.done和.fail

1 个答案:

答案 0 :(得分:0)

在jQuery中设置插件非常简单,因为您可以按照自己的文档进行操作。

JQuery documentation

因此,对于您的情况,它将:

(function($) {
      $.extend($.fn, {
    myAjax: function(url, options) {
        var opts = $.extend({}, $.fn.ajaxDefaults, options);
        //your code....
            }
    /*
    * plugn defaults
    */
    ajaxDefaults : {
        type: "POST",
        dataType: "json"
    }
    }); 
}(jQuery)); 

我希望这有帮助。