添加ajax成功函数回调到jquery函数

时间:2011-11-08 15:12:03

标签: jquery

(function ($) {
        $.fn.sendAuditToHandler = function (options) {

            var defaultSettings = {
                'url': '../SentinelOperationsUI/GenericHandler.ashx'
            };

            var objectToSend = {};

            var opts = $.extend(defaultSettings, options);

            $(this).find('input[type=text], select').each(function (i, val) {

                var objectKey = $(val).attr('class');
                var objectValue = $(val).val();

                objectToSend[objectKey] = objectValue;
            });

            objectToSend = JSON.stringify(objectToSend);

            $.ajax({
                url: opts.url,
                data: { 'AuditObject': objectToSend },
                success: function (data) {

                }
            });

            return this;

        };
    })(jQuery);

我想使用的是在函数调用中使用ajax success函数。像

这样的东西
sendAuditToHandler({ /* some options */ }, success: function() { //ajax success callback function }...

2 个答案:

答案 0 :(得分:1)

将其作为普通参数传递,或作为现有选项哈希的一部分传递。

$.fn.sendAuditToHandler = function (options, onSuccess) {
    // etc.
        $.ajax({
            url: opts.url,
            data: { 'AuditObject': objectToSend },
            success: onSuccess
        });

然后当你打电话时:

sendAuditToHandler({ /* some options */ }, function(data) {
    // Whatever you want.
    alert("ohai");
});

或作为选项的一部分:

$.ajax({
    url: opts.url,
    data: { 'AuditObject': objectToSend },
    success: opts.onSuccess
});

当你打电话时:

sendAuditToHandler({
    url: "the url",
    // other options, then the method.
    onSuccess: function(data) {
        // Whatever you want.
        alert("ohai");
    }
});

答案 1 :(得分:1)

您可以在ajax调用中调用您的成功函数

$.ajax({ 
   url: opts.url, 
   data: { 'AuditObject': objectToSend }, 
   success: function (data) { 
        options.success();
   } 
});