我使用jQuery UI .autocomplete()
,我非常喜欢。我确实有一个我无法解决的主要问题。
当我输入一封信,说 s , stackoverflow 出现在下拉菜单中,我用鼠标选择 stackoverflow ,然后输入框暂时失去焦点,这会导致调用onblur
事件。
虽然从技术上讲,当我点击时输入框是blur
,这违背了可用性直觉。我该如何解决这种烦人的行为?
答案 0 :(得分:17)
您可以尝试使用jQuery UI自动完成的打开和关闭事件来控制文本框的模糊事件。打开自动填充功能后,您可以禁用模糊事件,当它关闭时,您可以再次启用模糊事件。我在jsfiddle.net设置了一个工作示例。希望它有所帮助。
var disable=false;
$( "#tags" ).autocomplete({
source: availableTags,
open: function(event, ui) { disable=true },
close: function(event, ui) {
disable=false; $(this).focus();
}
}).blur(function() {
if(!disable) {
alert('blur');
}
});
答案 1 :(得分:0)
你的模糊事件中有什么?这有点hacky但是你可以为你的模糊处理程序做一个相对较短的延迟的setTimeout。然后,您可以在自动完成的焦点事件处理程序中设置变量,并告诉您的模糊处理程序不会触发。