扩展jQuery插件

Cha*_*ert 13 jquery

有没有人扩展现有的jQuery插件?

我不确定从哪里开始.我宁愿不实际复制和修改我希望扩展的插件.我是通过原型或只是对插件的延伸调用来做到这一点吗?

或者我梦想这样做有意义吗?

Ste*_*ock 10

编辑:正如Seb所指出的,这并不是一个"扩展"插件的例子,更多的是"封装"一个插件,所以当它来时:)

这是我前一段时间为简化jquery autocomplete插件的使用而做的事情:

// small autocomplete plugin wrapping the full autocomplete plugin for a standard look and feel
(function($) {
    $.fn.standardAutocomplete = function(type) {
        return this.autocomplete(ToAbsoluteUrl("~/System/Autocomplete/" + type), {
            formatItem: formatItem,
            formatResult: formatResult
        });
        // Autocomplete formatting callbacks
        function formatItem(row) { return row[0] + "<span class=\"sub\">" + row[1] + "</span>"; }
        function formatResult(row) { return row[0].replace(/(<.+?>)/gi, ''); }
    }
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

现在,这不是遵循"书本"jquery编码实践 - 例如,我没有考虑到可以选择多个元素的事实,但在这种情况下,我知道我永远不会在页面上选择多个元素有了这个,所以我想保持简单,它"适合我".您可能可以使用类似的方法,也许更复杂一点.

  • 这是一个包装器,它不会扩展任何类或对象.你实际上正在创建一个_uses_ other的新插件,但是没有任何其他插件的方法和选项 - 在这种情况下,你正在扩展任何东西. (6认同)