Twitter Typeahead插件不查询服务器

时间:2013-08-22 14:22:01

标签: twitter-bootstrap bootstrap-typeahead

我不确定我在推特的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甚至没有尝试。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

好的,所以我找到了 AN 的答案,但答案对我来说没有多大意义:

在浏览bootstrap(2.3.2)代码时,我注意到Typeahead插件的代码 显着 小于{{3}处发布的代码}。就像,除了事件处理程序之外几乎没有任何东西。

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

我不确定为什么嵌入在Bootstrap 2.3.2中的Typeahead不起作用,但包括Typeahead本身解决了我的问题。

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