0

このコードは bootstrap: linkから入手しました。

どうやら nextall() を使って typeahead から 2 種類のドロップダウンリストを作成するようですが、これを実装する方法がわかりません。ブートストラップ typeahead ファイルで何かを変更する必要がありますか?

リンクからのテキスト: typeahead レンダリング メソッドを公開したので、それをオーバーライドして、カスタム ソースから返されたオブジェクトのタイプに基づいてリスト html をカスタマイズできます。これは、新しい Twitter 検索/オートコンプリートのようなものを作成する場合に必要です。.nextAll(':has(a):first') を使用するように .next() を変更して、結果の型を分離できるようにしました。例

var labels
  , mapped
$("input").typeahead({
  source: function (query, process) {
    $.get('/autocomplete', { q: query }, function (data) {
      labels = []
      mapped = {}

      $.each(data, function (i, item) {
        mapped[item.label] = item.value
        labels.push(item.label)
      })

      process(labels)
    })
  },
  render: function () {
      var that = this

      items = $(mapped).map(function (i, item) {
        i = $(that.options.item).attr('data-value', item)

        if (item.thumb) { // Ok object has a thumbnail.
          i.find('a').append(''+that.highlighter(item));
        } else {
          i.find('a').html(that.highlighter(item))
        }

        return i[0]
      })

      items.first().addClass('active')
      this.$menu.html(items)
  },
  updater: function (item) {
    return mapped[item]
  }
})
4

1 に答える 1

0

リンクしたコミットを実装するには (Bootstrap ソースから消えたようです)、gcoop の修正版の bootstrap-typeahead.jsをダウンロードして、オリジナルの代わりにそれを使用できます。
彼のフォークはバージョン 2.0.4 であり、新しいバージョンを使用している場合は問題が発生する可能性があることに注意してください。

于 2012-10-26T16:39:27.743 に答える