mouseleave / focusout事件处理程序和用户从自动完成列表中选择的问题

时间:2013-07-16 16:09:35

标签: javascript jquery javascript-events autocomplete settimeout

好的,我已将jQuery事件处理程序mouseover绑定到具有以下代码的元素:

jQuery(document).ready(function(){

    jQuery('#buyout_field').mouseleave(function() {
        alert('Hi!');
    });    

});

这很有效,但之后我注意到,如果用户从这些下拉列表auto-complete菜单中选择一个值,浏览器会显示您输入的过去数据,mouseleave事件过早触发我很喜欢。是的,它会在正确的时间点火(当鼠标离开元素时);但是,只有在用户将数据输入字段后才需要触发该功能。

然后我添加了focusout处理程序以覆盖更多基础:

jQuery('#buyout_field').focusout(function() {
    alert('Hi!');
});

但是,用户仍然可以从下拉列表中选择一个值,而不是在文本字段外单击。

我在解决此功能时是否还有其他选项?或者我是否必须使用setTimeout()来允许用户有时间从自动完成列表中选择某些内容然后激活该功能或者我应该禁用自动完成?

小提琴:http://jsfiddle.net/wbsDy/

0 个答案:

没有答案