我想在插件js http://twitter.github.io/typeahead.js/releases/latest/typeahead.bundle.js文件中添加'setInputDataId'函数,与现有函数'_select'在同一级别,而不实际修改文件本身。所以我想知道如何添加新功能,我将不胜感激。
插件中的现有代码:
_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)
现在展开节点功能然后''然后第二个Closure那里你可以看到Typeahead。现在点击Typeahead原型,你可以看到_select方法。如何修改此功能。
层次:
function
<function scope>
Closure (second)
Typeahead
prototype
_select
答案 0 :(得分:0)
由于_只是一个对象,只需在添加上述文件后将其添加到脚本文件中。
例如:
_.functionName = function() { //implementation };
首先打开控制台并在那里试一试。
输入_并按Enter键,您应该获得对象内容。然后尝试上面的伪代码,然后关闭你!但显然除非你把它添加到某个地方的文件中,否则只有在你关闭浏览器之前它才会存在。