我试图通过 YUI 自动完成对 onBlur 和 onSelect 事件做出不同的反应。我需要隐藏 AC,当用户单击其他地方并将其保留在选择时。问题是,一个模糊事件也被触发 onSelect 。我找不到仅在 AC 外部单击时触发的事件,并且在选择的情况下我真的以某种方式捕获模糊事件,因为它是在选择事件之前触发的。
所以基本上我想要的是这样的输出:
点击外部交流:BLUR
选择值:选择值
但我得到的是:
点击外部交流:BLUR
选择值:模糊,选择值
这会导致选择时隐藏 AC。
我试图通过 YUI 自动完成对 onBlur 和 onSelect 事件做出不同的反应。我需要隐藏 AC,当用户单击其他地方并将其保留在选择时。问题是,一个模糊事件也被触发 onSelect 。我找不到仅在 AC 外部单击时触发的事件,并且在选择的情况下我真的以某种方式捕获模糊事件,因为它是在选择事件之前触发的。
所以基本上我想要的是这样的输出:
点击外部交流:BLUR
选择值:选择值
但我得到的是:
点击外部交流:BLUR
选择值:模糊,选择值
这会导致选择时隐藏 AC。
由于当您选择某些内容时会触发 blur 事件,并且您可能无法阻止这种情况,因此在 blur 设置超时。如果计时器超时,则执行通常在模糊时执行的操作。
在选择事件中,取消计时器。
一些非常松散的伪代码:
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
}