从Bootstrap typeahead获取输入元素

时间:2014-10-29 18:53:47

标签: jquery twitter-bootstrap-3

您好我需要在“source”属性中获取输入元素:

$('.typeahead').typeahead(null, {
   source: function (query, process) {
      var element = $(this);

我期待一个“输入”元素,但我得到:

[Dataset, jquery: "2.1.1", constructor: function, selector: "", toArray: function, get: function…]

2 个答案:

答案 0 :(得分:3)

Twitter中的Typeahead Bootstrap 3.0改变了“this”对象的设置方式。

我以这种方式访问​​input元素:

var element = $(this.$el[0].parentElement.parentElement).children("input").first();

...丑

答案 1 :(得分:0)

不确定我是否完全理解你的问题:/

而不是var element = $(this);使用:

var element = $(this)[0];

或者更好的是:

var element = this;

<强>更新

  

source - 建议的支持数据源。预计是一个   带签名的函数(query,cb)。这是预料之中的   函数将计算建议集(即JavaScript数组)   查询然后用所述集调用cb。可以调用cb   同步或异步。 Bloodhound建议引擎可以   在这里使用,了解如何,请参阅Bloodhound Integration。的必需

<强>参考

https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md
https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md#bloodhound-integration