でクリックイベントを阻止されていない:ディスプレイ:どれも私は検索候補と検索ボックスを持っているjQueryの
<input id="searchBar" />
<div id="searchSuggestion"></div>
入力が行われたときにdivのsearchSuggestion
が自動的にjQueryのAJAXを介して更新される(コードが示されていません)。非表示/(検索テキストボックスの下に表示されます)オートコンプリート候補を表示するには、私が使用します。
$searchBar.blur(function() {
$searchSuggestion.css("display", "none");
});
$searchBar.focus(function() {
$searchSuggestion.css("display", "");
});
これまでのところは良いです。 display:none
があるので、
$searchSuggestion.on("click", ".item", function() {
alert("clicked");
});
問題は、検索提案項目をクリックすると、フォーカスを失うテキストボックスが発生している:
は今、私は、ユーザーが検索の提案項目をクリックしたときにテキストボックスを自動入力したいです検索候補アイテムに設定すると、click
イベントは発生しません。
display:none
コードを削除すると、すべて正常に機能します。
この競合を回避するにはどうすればよいですか?
あなたが必要とするロジックはかなりレイアウトされています。 * searchSuggestion以外の*をクリックすると、検索候補が非表示になります。 –
クリックを委任します。 event.targetが提案または検索バーでない場合は、 – mplungjan
@KevinBを正確に行う方法を隠しますか?グローバルなマウスクリックイベントをキャプチャしますか? – kevin