繁体   English   中英

我如何对YUI自动完成选择上的模糊事件做出反应

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM