私は自分のウェブサイトの検索フィールドをスクリプトしています。ユーザーが入力すると、フィールドの下に検索候補が表示されたボックスが表示されます。提案は、キーボードの移動とクリックが可能です。提案付き検索フィールドの記述。 Javascriptのフォーカスの問題
しかし、ユーザーのクリックがページの別の場所に表示されると、表示が消えるのは問題です。私はonBlur()ハンドラを検索フィールドに追加しましたが、ユーザーが提案の1つをクリックすると、クリックの前にぼやけが発生し、提案ボックスが消え、clickイベントが提案。
ここに私のHTMLは次のようになります。そこで質問は、フォーカスが検索フィールドを離れたときに焦点を当てた新しい要素が提案されたときに、私は以外、suggestions_box要素を非表示にすることができますどのように、ある
<input type="text" id="search_field" onBlur="hideSuggestions()" />
<div id="suggestions_box">
<ul>
<li onClick="doSomething(1)">suggestion1</li>
<li onClick="doSomething(2)">suggestion2</li>
</ul>
</div>
ボックス?
感謝を助けることを願っています。私はこれが一般的に適切な解決策だと思うが、私はjQueryを使用しています。これはrelatedTargetプロパティを正しく設定しません(常に未定義です)。回避策はありますか? – Aaron
一般的に、jQueryは 'relatedTarget'に値を設定します。しかし、私は 'blur'イベントとjQueryがIEの' toElement'をどのように解釈するかについて十分に分かりません。それはあなたの問題かもしれません。 –