jQuery .focusout / .click conflict 冲突的是 jQuery 的 .focusout 和 .click 方法。

14 浏览
0 Comments

jQuery .focusout / .click conflict 冲突的是 jQuery 的 .focusout 和 .click 方法。

我正在一个带有自动完成搜索框的项目上工作。现在我遇到了一个问题,即我想将找到的自动完成结果的值传递给输入框,但同时,当输入框不再聚焦时,我希望自动完成框隐藏起来。

现在我遇到了一个冲突,因为单击自动完成框被视为焦点失去,甚至在传递值之前就隐藏了框。对于这种问题,有什么指导或解决方法吗?在这里有一个 jsfiddle 示例,让你更清楚地理解。

http://jsfiddle.net/KeGvM/

或者在这里

CSS

#a_c {display:none;}​

JS

$('#search_field').focusout(function() {
    $('#a_c').hide(); // 如果我删除这一行,它就可以正常工作
});
$('#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


你好世界

0