首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery:如何扩展扩展?

jQuery:如何扩展扩展?
EN

Stack Overflow用户
提问于 2011-08-25 12:49:47
回答 1查看 130关注 0票数 2

我已经看到jQuery的插件可以这样扩展:

代码语言:javascript
复制
$.ui.plugin.add('draggable', 'zIndex', {
    start: function(event, ui) { //... }
})

我想知道是否可以扩展扩展?因此,比方说,我想要更改draggable插件的zIndex扩展中的某些内容(不是全部),即在start回调函数的最开始处放置一些我自己的代码。我该怎么做呢?如何访问该函数来代理它?

EN

回答 1

Stack Overflow用户

发布于 2011-08-26 09:06:35

沿着这些思路:

代码语言:javascript
复制
(function ($) {
    function proxyPlugin(plugin, callback, option, func) {
        $.each($.ui[plugin].prototype.plugins[callback], function (k, v) {
            if (v[0] == option) {
                var fn = v[1];

                v[1] = function () {
                    func.apply(this, arguments);

                    fn.apply(this, arguments);
                }
            }
        });
    }

    proxyPlugin('draggable', 'start', 'zIndex', function (e, ui) {
        // we are in our custom function that will be triggered before the original one.
        // our custom function receives all the arguments the original one has.
        // for example, let's add a property by the name of foo to the ui object. 
        ui.foo = true;
    });
})(jQuery);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7185283

复制
相关文章

相似问题

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