【问题标题】:How can I not react to blur event on YUI autocomplete select如何不对 YUI 自动完成选择上的模糊事件做出反应
【发布时间】:2014-06-03 16:37:49
【问题描述】:

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

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

点击外部交流:BLUR

选择值:选择值

但我得到的是:

点击外部交流:BLUR

选择值:BLUR,选择值

这会导致选择时隐藏 AC。

【问题讨论】:

    标签: javascript events autocomplete onblur yui-autocomplete


    【解决方案1】:

    由于当您选择某些内容时会触发 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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-09
      • 1970-01-01
      • 2012-09-25
      • 2020-07-22
      • 2011-08-29
      • 2011-12-05
      • 2014-11-19
      • 1970-01-01
      相关资源
      最近更新 更多