Ich arbeite an einem Projekt mit einem Autocomplete-Suchfeld. Jetzt habe ich das Problem, dass ich den Wert aus den gefundenen Autocompleteresults an das Eingabefeld übergeben möchte, aber gleichzeitig möchte ich die Autocompletebox ausblenden, wenn das Eingabefeld nicht mehr fokussiert ist.jQuery .focusout/.click Konflikt
Jetzt habe ich einen Konflikt mit beiden von ihnen, da der Klick auf die Autocompletebox als Focusout gesehen wird und das Feld ausblenden, noch bevor es den Wert übergeben kann. Irgendwelche Zeiger oder Workarounds für diese Art von Problem? Hier ein Spiel, um es dir klarer zu machen.
Oder hier
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>
Sehr gute Workaround imo. Danke für die schnelle Antwort! – Johnny000
Ich hatte ein ähnliches Problem wie die OP, und ich entschied mich, diese schmutzige Lösung als Lösung zu verwenden (letzter Ausweg und ich muss eine Frist so schnell wie möglich beheben).Dies bringt die Ereignisse in einen schlechten Zustand und es ist eine sehr sehr schlechte Übung. Ich werde das verwenden, danke für diese Antwort, aber werde ablehnen. Warten auf eine bessere Antwort. – Sharky