在jquery库中重新定义方法的最佳方法

时间:2012-08-30 09:49:46

标签: javascript jquery twitter-bootstrap

假设我想在bootstrap-typeahead库中更改render函数。 http://twitter.github.com/bootstrap/assets/js/bootstrap-typeahead.js

实现这一目标的一种方法是:

_.extend($.fn.typeahead.Constructor.prototype, {
    render: function (items) {
      // some code
    }
});

假设我想重新定义渲染函数,仅用于特定元素,如...

element.typeahead({
    minLength: 3,
    source: getSource
});

我应该如何重新定义渲染函数才能对此元素有效?

P.S .:
我正在使用jquery和下划线

1 个答案:

答案 0 :(得分:1)

也许你可以先克隆它?

$.fn.typeaheadCustom = $.fn.typeahead;

_.extend($.fn.typeaheadCustom.Constructor.prototype, {
    render: function (items) {
      // some code
    }
 });

element.typeaheadCustom({
    minLength: 3,
    source: getSource
});

<强>更新

您可能需要深度克隆它:

$.fn.typeaheadCustom = $.extend(true, $.fn.typeahead, {});