[英]How can I not react to blur event on YUI autocomplete select
我试图对具有YUI自动完成功能的onBlur和onSelect事件做出不同的反应。 当用户单击其他位置并将其保留在选中位置时,我需要隐藏AC。 问题在于,模糊事件也会在onSelect上触发。 我找不到仅在AC外部单击时触发的事件,并且在选择情况下我真的陷于以某种方式捕获模糊事件,因为它是在选择事件之前触发的。
所以基本上我想要的是这样的输出:
在AC外部单击:BLUR
选择值:SELECT VAL
但是我得到的是:
在AC外部单击:BLUR
选择值:BLUR,SELECT VAL
这会导致选择时隐藏交流。
由于模糊事件会在您选择某项时触发,并且您可能无法避免这种情况,因此在模糊时设置超时。 如果计时器超时,请执行模糊时通常要执行的操作。
在选择事件中,取消计时器。
一些非常宽松的伪代码:
var blurTimer = null;
function handleBlur() {
blurTimer = setTimeout(function() {
// do what you normally do onblur
}, 50);
}
function handleSelect() {
clearTimeout(blurTimer);
// do what you normaly do on select
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.