0

我已mouseover使用以下代码将 jQuery 事件处理程序绑定到一个元素:

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/

4

0 回答 0