私はオートコンプリート検索ボックスを使ってプロジェクトを進めています。今私は、私は、入力フィールドには、より焦点を当てていないときに、私はオートコンプリートボックスを非表示にしたいと思うが、私は、入力ボックスに、見つかった自動補完からの値を渡したい問題があります。jQuery .focusout/.click conflict
ここでは、オートコンプリートボックスのクリックがフォーカスアウトとみなされ、値を渡す前でもボックスを非表示にしているので、両方とも競合しています。この種の問題のポインタや回避策はありますか?ここであなたにそれをより明確にするjsfiddle。
それともここ
CSS:
#a_c {display:none;}
JS:
$('#search_field').focusout(function() {
$('#a_c').hide(); // IF I DELETE THIS IT WORKS
});
$('#search_field').focusin(function() {
$('#a_c').show();
});
$('#a_c a').click(function() {
$('#search_field').val('');
var value = $(this).text();
var input = $('#search_field');
input.val(input.val() + value);
$('#a_c').hide();
return false;
});
HTML:
<input autocomplete="off" onkeyup="searchFor(this.value);" name="search" id="search_field" class="bold" type="text" placeholder="Search...">
<div id="a_c"><a href="">hello world</a></div>
非常に良い回避策です。早速のお返事ありがとうございます! – Johnny000
私はopのような同様の問題を抱えていました。私は解決策としてこの汚れた修正を使用することに決めました。これはイベントを競合状態にし、非常に悪い習慣にします。私はこの答えに感謝しますが、downvoteを使用します。より良い答えを待っている。 – Sharky