我正在使用自動完成搜索框來處理項目。現在我遇到了問題,我想將找到的自動完成結果的值傳遞給輸入框,但同時,我希望autocompletebox在輸入字段不更集中時隱藏。jQuery .focusout/.click衝突
現在我與他們兩人都有衝突,因爲單擊autocompletebox被視爲focusout,並且在它可以傳遞值之前隱藏框。任何指針或這種問題的解決方法?這裏有一個讓你更清楚的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>
非常好的解決方法imo。感謝您的快速回復! – Johnny000
我有類似的問題,我決定使用這個骯髒的修補程序作爲解決方案(最後的手段和即時通訊截止日期必須儘快解決這個問題)。這使事件處於競爭狀態,這是一個非常糟糕的做法。我會用這個,謝謝你的回答,但會倒下。等待更好的答案。 – Sharky