0

ブートストラップ用の Twitter の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
    }]);

ハンドルバーがロードされていることを確認できます。Typeahead が初期化されていることと、BookSearch コントロールが検出されていることを確認できます (これを確認するために Typeahead コードを実行しました)。

ただし、Typeahead コードはイベントをまったく受信しないようです。Focus、Blur、SpecialKeys (およびその他すべてのイベント ハンドラー) にブレークポイントを設定しましたが、何も認識されません。

また、上記のコードから Template 行と Engine 行をコメントアウトして、Bootstrap に認識できないデータのクエリを作成させようとしましたが、これも機能しません。

リモート URL を参照して、データが実際に返されていることを確認できます。しかし、繰り返しになりますが、Typehead は試行すらしていません。

私は何が欠けていますか?

4

1 に答える 1

0

わかりましたので、これに対するANの答えを見つけましたが、答えは私にはあまり意味がありません:

ブートストラップ (2.3.2) コードを調べていると、Typeahead プラグインのコードがhttps://github.com/twitter/typeahead.jsに投稿されたコードよりも大幅に少ないことに気付きました。同様に、イベント ハンドラー以外にはほとんど何もありませんでした。

そのため、Typeahead プラグインを含まない Boostrap のカスタム ダウンロードを作成し、コードで Typeahead プラグインを個別に参照しました。そして、それはうまくいきませんでした。

Bootstrap 2.3.2 に組み込まれていた Typeahead が機能しなかった理由はわかりませんが、Typeahead を単独で含めることで問題が解決しました。

数日以内にこれよりも良い回答が得られない場合は、先に進んでこれを回答として受け入れます. しかし、うまくいけば、誰かがより良い解決策を持っています。

于 2013-08-22T14:35:58.943 に答える