2013-08-14 30 views
5

先読みにtypeahead.jsを使用しています。typeahead.jsのドロップダウンメニューを閉じる方法はありますか?

私は基本的にこれの逆をやりたい:Programmatically triggering typeahead.js result display

私は先行入力の上.trigger('blur');を行うことを試みたが、私は.typeahead('setQuery', value);を行うことで、右その前に値を設定します。 'setQuery'を実行すると、新しいクエリ用語で結果を取得するためのajaxリクエストが発生します。そのため、「ボケ」が発生しますが、その後すぐにボックスが開きます。

+0

だから、 'ドロップダウンがあなたの後に非表示にしたいsetQuery'? FYIこれはプラグイン自体にいくつかの変更が必要な場合があります。 –

+0

正解、私は気付いています:/ – tubaguy50035

答えて

-2

setQueryを呼び出す代わりに、getSuggestionsを実行しない別の関数を追加すると、時間があります。

-1

「開いた」イベントハンドラで「ブラー」をトリガできます。ドロップダウンが瞬間的にちらつく場合は、CSSを使用して一時的に非表示にすることができます。

+0

"オープン"イベントハンドラは、提案ボックスが開くときに実際に呼び出されることはありません。 「開いた」イベントは、カーソルが入力にあるときに呼び出されます。 – tubaguy50035

-1

誰かが将来的にこの出くわす場合には、今、これを行うための最善の方法は次のとおりです。

$('.tt-dropdown-menu').css('display', 'none') 

開くChromeデベロッパーツールであれば、あなたが入力し、消去と何が起こるか見て、これはすべての先行入力された文字です何も魔法はありません。バージョン0.11のよう

Uncaught TypeError: Cannot assign to read only property 'highlight' of 
+0

これがなぜ落とされたのか? – onetwopunch

+0

私はdownvotedしていないが、私は人々がおそらく、APIに固執するソリューションが好きだと思います。それはapiが私のために働いていないと言っています(closeaと呼ぶ)ので、私はapiを覆すことになると思います。 – user254694

11

これを行うための適切な方法、:

クエリーを設定するには、現在のバージョン(10.5)にしようとする場合以外にも、あなたはこのようになりますエラーが発生します:

$('.typeahead').typeahead('close'); 

マニュアル:https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md#jquerytypeaheadclose

+0

なぜ私はそれを閉じるためにマウスを動かす必要がありますか? – DaNeSh

+0

と私はこのメッセージを受け取ります!捕捉されていないTypeError:s [n]は関数ではありません – DaNeSh

関連する問題