附加功能的插件,JS,而不真正修改js文件(Add function to the plugin j

2019-10-30 11:30发布

我想在同一水平已有功能“_select”是添加“setInputDataId”功能,在插件的js http://twitter.github.io/typeahead.js/releases/latest/typeahead.bundle.js文件,而无需实际修改文件本身。 所以,我想知道我怎么可以添加新的功能,我将不胜感激帮助。

现有代码插件:

    _select: function select(datum) {
            this.input.setQuery(datum.value);
            this.input.setInputValue(datum.value, true);
            this._setLanguageDirection();
            this.eventBus.trigger("selected", datum.raw, datum.datasetName);
            this.dropdown.close();
            _.defer(_.bind(this.dropdown.empty, this.dropdown));
        },

新的代码我想:

    _select: function select(datum) {
            this.input.setQuery(datum.value);
            this.input.setInputValue(datum.value, true);
            this.input.setInputDataId(datum.raw);
            this._setLanguageDirection();
            this.eventBus.trigger("selected", datum.raw, datum.datasetName);
            this.dropdown.close();
            _.defer(_.bind(this.dropdown.empty, this.dropdown));
        },

同时也可作为“setInputDataId”功能本来不是在插件,我想也添加此功能。

函数体是:

      setInputDataId: function setInputDataId(raw) {
            this.$input.attr('data-id',raw.id);
        },

请转到http://twitter.github.io/typeahead.js/examples/在Chrome的控制台选项卡中做到这一点:

console.dir($.fn.typeahead)

现在展开节点功能,那么“”,那么第二闭合那里你可以看到事先键入的内容。 现在点击事先键入的内容原型那里你可以看到_select方法。 我怎么能修改此功能。

层次:

function
  <function scope>
    Closure (second)
      Typeahead
        prototype
          _select

Answer 1:

由于_只是一个对象只是把它添加到您的脚本文件加入上述文件的下面。

例如:

_.functionName = function() { //implementation };

首先只需打开控制台,并尝试它。

_输入并按下回车键,你应该给对象的内容。 然后尝试上面的伪代码和您去! 但很明显,除非你把它添加到文件的地方也只会住,直到你关闭浏览器。



文章来源: Add function to the plugin js without actually modifying js file