2013-08-22 101 views
0

我不知道我在做什么错误与Twitter的Typeahead插件引导。 Typeahead甚至没有制作Ajax查询(我可以在Chrome开发工具中看到没有查询发生)。Twitter Typeahead插件不查询服务器

这里是我的HTML:

<input type="text" id="BookSearch"/> 

这里是我的代码事先键入的内容:

$("#BookSearch").typeahead([{ 
     name: "google-books-search", 
     remote: "/Book/GoogleBookSearch?query=%QUERY", 
     template: [ 
      "<img src='{{SmallThumbnailImageUrl}}' />", 
      '<p>{{Title}}</p>', 
      '<p>{{Authors}}</p>' 
     ].join(), 
     engine: Handlebars 
    }]); 

我可以验证把手被加载。 我可以验证Typeahead是否正在初始化,并且它正在查找BookSearch控件(我通过Typeahead代码来查看此内容)。

但是,似乎Typeahead代码从未收到任何事件。我在Focus,Blur和SpecialKeys(以及其他所有事件处理程序)中放置了断点,并且没有任何东西被识别。

我也试过从上面的代码注释掉模板和引擎行,并让Bootstrap对它无法识别的数据进行查询,但那也行不通。

我可以浏览到远程URL并验证是否确实正在返回数据。但是,Typeahead甚至没有尝试。

我错过了什么?

回答

0

好了,我发现AN答案,但答案没有多大意义,对我说:

在通过引导去(2.3.2)的代码,我注意到的代码Typeahead插件是显着比发布在https://github.com/twitter/typeahead.js的代码少。就像,事件处理程序除了事件处理程序之外几乎没有任何内容。

所以我创建了Boostrap的自定义下载,它没有包含Typeahead插件,然后在代码中单独引用了Typeahead插件。而没有那个工作。

我不知道为什么嵌入在Bootstrap 2.3.2中的Typeahead没有工作,但包括Typeahead本身解决了我的问题。

如果我在几天内得不到比这更好的答案,我会继续并接受这个答案。但希望有人有更好的解决方案。

+1

Bootstrap附带的typeahead插件与您尝试使用的独立插件并非完全相同,而且它们的工作方式完全不同。由于名称很容易让他们感到困惑。 – Dhaulagiri