你如何在jQuery中创建一个插件,将变量传回去,就像加载'功能?

时间:2014-05-23 21:57:51

标签: jquery

jQuery中的load函数允许通过last参数返回信息。如何在创建自定义插件时执行此操作?我知道我可以做一个'onComplete'(或其他)函数,但我想知道如何像'load'那样做。

示例'load'

$("#div").load('{url}', { vars:true }, function(response){
   // do something
});

2 个答案:

答案 0 :(得分:1)

DEMO:http://jsfiddle.net/8RTz6/

我假设你知道如何创建一个jQuery插件,所以我将继续解释自定义插件的回调函数。

以下是我用作示例的示例插件,此插件替换了元素的html(文本)并为其添加了一个类:

(function ($) {
    $.fn.myOwnPlugin = function (options, myOwnCallback) {
        var defaults = {
            msg: "This is the default message",
            class: "myOwnPlugin-class"
        }
        if (typeof myOwnCallback == 'function') {
            var ot = this.html();
            myOwnCallback.call(this, {originalText: ot});

        }

        var settings = $.extend({}, defaults, options);

        this.html(settings.msg);
        this.addClass(settings.class);
    }
})(jQuery);

您可以在.js文件中使用script标记将其包含在您的html中

这是你可以调用插件函数的方法:

$(document).ready(function () {
    $("#test").myOwnPlugin({msg: "This is a test."}, function(response){
        console.log(response.originalText);
    });
});

现在解释一下,你正在向主函数myOwnPlugin添加一个参数,该参数被称为myOwnCallback然后我们检查它是一个函数类型,如果是,我们将范围更改为该函数使用.call然后您可以通过添加对象即{originalText: ot, somethingElse: value, .... }

将任何内容附加到该函数作为响应

我希望这有意义,请参阅演示:http://jsfiddle.net/8RTz6/

答案 1 :(得分:0)

你的意思是申请一个方法作为回电?例如:

$("#div").load('{url}', { vars:true }, function(){
   $(this).myCustomJqueryMethod(); // plugin
});