1
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-08-18 03:11:19 +02:00

move the matcher and sorter into the options - encourage people to override them...

This commit is contained in:
Jacob Thornton
2012-01-27 22:27:06 -08:00
parent e726b231ba
commit 7cbb586825
3 changed files with 44 additions and 11 deletions

View File

@@ -24,6 +24,8 @@
var Typeahead = function ( element, options ) {
this.$element = $(element)
this.options = $.extend({}, $.fn.typeahead.defaults, options)
this.matcher = this.options.matcher
this.sorter = this.options.sorter
this.$menu = $(this.options.menu).appendTo('body')
this.source = this.options.source
this.shown = false
@@ -34,11 +36,6 @@
constructor: Typeahead
, matcher: function (item, query) {
// ;_; http://jsperf.com/asdfdfasdfa
return ~item.toLowerCase().indexOf(query)
}
, select: function () {
var val = this.$menu.find('.active').attr('data-value')
this.$element.val(val)
@@ -77,12 +74,12 @@
return this.shown ? this.hide() : this
}
q = this.query.toLowerCase()
items = jQuery.grep(this.source, function (item) {
if (that.matcher(item, q)) return item
items = $.grep(this.source, function (item) {
if (that.matcher(item)) return item
})
items = this.sorter(items)
if (!items.length) {
return this.shown ? this.hide() : this
}
@@ -233,6 +230,12 @@
, items: 8
, menu: '<ul class="typeahead dropdown-menu"></ul>'
, item: '<li><a href="#"></a></li>'
, matcher: function (item) {
return ~item.indexOf(this.query)
}
, sorter: function (items) {
return items
}
}
$.fn.typeahead.Constructor = Typeahead