我不确定我在推特的Typeahead插件中做错了什么。 Typeahead甚至没有进行Ajax查询(我在Chrome开发工具中可以看到没有发生任何查询)。
这是我的Html:
<input type="text" id="BookSearch"/>
这是我的Typeahead代码:
$("#BookSearch").typeahead([{
name: "google-books-search",
remote: "/Book/GoogleBookSearch?query=%QUERY",
template: [
"<img src='{{SmallThumbnailImageUrl}}' />",
'<p>{{Title}}</p>',
'<p>{{Authors}}</p>'
].join(),
engine: Handlebars
}]);
我可以验证Handlebars是否已加载。 我可以验证Typeahead是否正在初始化并且它正在找到BookSearch控件(我逐步查看了Typeahead代码以查看此内容)。
但是,Typeahead代码似乎永远不会收到任何事件。我在Focus,Blur和SpecialKeys(以及所有其他事件处理程序)中放置了断点,并且没有任何内容被识别。
我还尝试从上面的代码中注释掉模板和引擎行,只是让Bootstrap查询它无法识别的数据,但这也不起作用。
我可以浏览到远程URL并验证确实正在返回数据。但是,再次,Typeahead甚至没有尝试。
我错过了什么?
答案 0 :(得分:0)
好的,所以我找到了 AN 的答案,但答案对我来说没有多大意义:
在浏览bootstrap(2.3.2)代码时,我注意到Typeahead插件的代码 显着 小于{{3}处发布的代码}。就像,除了事件处理程序之外几乎没有任何东西。
所以我创建了一个不包含Typeahead插件的Boostrap自定义下载,然后在代码中单独引用了Typeahead插件。而那没有用。
我不确定为什么嵌入在Bootstrap 2.3.2中的Typeahead不起作用,但包括Typeahead本身解决了我的问题。
如果我在几天内没有得到比这更好的答案,我会继续接受这个作为答案。但希望有人有更好的解决方案。