有没有人扩展现有的jQuery插件?
我不确定从哪里开始。我宁愿不实际复制和修改我希望扩展的插件。 我是通过原型或只是对插件的延伸调用来做到这一点吗?
或者我是否梦想这样做会有意义?
答案 0 :(得分:10)
这是我为了简化我前一段时间jquery autocomplete plugin的使用而做的事情:
// 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);
现在不遵循“书本”jquery编码实践 - 例如我没有考虑到可以选择多个元素的事实,但在这种情况下,我知道我永远不会在页面上选择多个元素,所以我想保持简单,它“适用于我”。您可能可以使用类似的方法,也许更复杂一点。
答案 1 :(得分:2)
如果插件做得好,那么除了使用options更改其行为之外,您没有其他选择。
这样做的目的是封装所有代码并且不会干扰其他代码,因此您不能在其中注入任何代码。
如果你真的需要改变它的行为,那么我想你需要复制&amp;粘贴代码。