有没有办法避免下拉数据按自然顺序排序?
这将在 onFocus 事件的下拉列表中显示源中的所有数据。所以问题是它只会显示有限数量的具有自然排序顺序的元素,尽管我不希望它们如此。
如何避免它们被排序。
$('#device').tagsinput({
typeahead: {
source: ['Amsterdam', 'Washington', 'Sydney', 'Beijing', 'Cairo','Amstedrdam', 'Washidngton', 'Syddney', 'Bedijing', 'Caidro','Amzstderdam', 'Washidnzgton', 'Sydzdney', 'Beijzding', 'Caidzro'],
autoSelect: false,
showHintOnFocus : true,
minLength : 0
}
});
最佳答案
问题不在 Typeahead
插件中,而是在第二个 bootstrap-tagsinput
插件中。不幸的是,如果不编辑源代码就无法解决它。
看看这个 JSFiddle
如何阅读 bootstrap-tagsinput.js 的来源第 310 行:
sorter: function (texts) {
return texts.sort();
},
sorter
选项由 bootstrap-tagsinput
插件向 Typeahead
插件提供,并且由于该插件是在立即调用的函数表达式中执行,您无法覆盖 sorter
方法。
您应该 fork 该插件并更改排序器选项:
sorter: function (texts) {
var sorter = typeahead.sorter || function (items) { return items.sort(); }
return sorter(texts);
},
所以你的插件初始化将是:
$('#ppp').tagsinput({
typeahead: {
source: ['Amsterdam', 'Washington', 'Sydney', 'Beijing', 'Cairo', 'Amstedrdam', 'Washidngton', 'Syddney', 'Bedijing', 'Caidro', 'Amzstderdam', 'Washidnzgton', 'Sydzdney', 'Beijzding', 'Caidzro'],
sorter: function (texts) {
return texts;
}
}
});
...完成此操作后,它就会起作用
关于javascript - 如何停止 Bootstrap-3-Typeahead 下拉列表按排序顺序显示元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33287532/