1

我试图通过 YUI 自动完成对 onBlur 和 onSelect 事件做出不同的反应。我需要隐藏 AC,当用户单击其他地方并将其保留在选择时。问题是,一个模糊事件也被触发 onSelect 。我找不到仅在 AC 外部单击时触发的事件,并且在选择的情况下我真的以某种方式捕获模糊事件,因为它是在选择事件之前触发的。

所以基本上我想要的是这样的输出:

点击外部交流:BLUR

选择值:选择值

但我得到的是:

点击外部交流:BLUR

选择值:模糊,选择值

这会导致选择时隐藏 AC。

4

1 回答 1

3

由于当您选择某些内容时会触发 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
}
于 2014-06-03T20:43:40.313 回答