首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery插件:添加回调功能

jQuery插件:添加回调功能
EN

Stack Overflow用户
提问于 2010-03-29 04:33:38
回答 5查看 63.4K关注 0票数 87

我试图给我的插件回调功能,我希望它以一种有点传统的方式操作:

代码语言:javascript
复制
myPlugin({options}, function() {
    /* code to execute */
});

代码语言:javascript
复制
myPlugin({options}, anotherFunction());

如何处理代码中参数?它被视为一个完整的实体吗?我非常确定我知道我应该把可执行代码放在哪里,但是我如何让代码执行呢?我似乎找不到很多关于这个主题的文献。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-03-29 04:40:22

只需在插件中执行回调即可:

代码语言:javascript
复制
$.fn.myPlugin = function(options, callback) {
    if (typeof callback == 'function') { // make sure the callback is a function
        callback.call(this); // brings the scope to the callback
    }
};

您还可以在options对象中进行回调:

代码语言:javascript
复制
$.fn.myPlugin = function() {

    // extend the options from pre-defined values:
    var options = $.extend({
        callback: function() {}
    }, arguments[0] || {});

    // call the callback and apply the scope:
    options.callback.call(this);

};

像这样使用它:

代码语言:javascript
复制
$('.elem').myPlugin({
    callback: function() {
        // some action
    }
});
票数 168
EN

Stack Overflow用户

发布于 2012-02-08 07:07:51

带回了过去的狂欢。

值得注意的是,如果您传递了两个参数,例如:

代码语言:javascript
复制
$.fn.plugin = function(options, callback) { ... };

然后你调用插件时不带options参数,但是有一个回调,这样你就会遇到问题:

代码语言:javascript
复制
$(selector).plugin(function() {...});

我使用这个来使它更灵活一些:

代码语言:javascript
复制
if($.isFunction(options)) { callback = options }
票数 4
EN

Stack Overflow用户

发布于 2015-04-08 05:54:01

我想这可能会对你有帮助

代码语言:javascript
复制
// Create closure.
(function( $ ) {
  
   // This is the easiest way to have default options.
 
        var settings = $.extend({
            // These are the defaults.
 
            onready: function(){},
 
            //Rest of the Settings goes here...
        }, options );
 
    // Plugin definition.
    $.fn.hilight = function( options ) {
 
        //Here's the Callback
        settings.onready.call(this);
 
        //Your plugin code goes Here
    };
  
// End of closure.
  
})( jQuery );

我分享了一篇关于创建您自己的jQuery插件的文章。我认为您应该查看该http://mycodingtricks.com/jquery/how-to-create-your-own-jquery-plugin/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2534436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档