jQuery中的load函数允许通过last参数返回信息。如何在创建自定义插件时执行此操作?我知道我可以做一个'onComplete'(或其他)函数,但我想知道如何像'load'那样做。
示例'load'
$("#div").load('{url}', { vars:true }, function(response){
// do something
});
答案 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
});