如何与onblur一起正确处理onclick事件

时间:2014-05-19 19:14:32

标签: javascript javascript-events onclick onblur

以下帖子与我之前提出的here问题有关。

尽管这两个问题是独立的,但它们与我实现的相同功能有关 - 预测文本。

我遇到的问题与如何调用2个事件onbluronclick有关。

在用户在文本框中输入一些字符并决定他们想要点击建议而不是完成输入整个单词之后,就会出现这种情况。

我有一个onlick处理程序附加到每个建议。

但是,我的文本框也附加了onblur处理程序。

问题是onblur处理程序应该关闭建议框并销毁其内容。

onlick处理程序需要内容才能复制所点击的div的值并将其复制到文本框中。

因此,进退两难。如果已被onblur处理程序销毁,我无法复制任何内容。

如何捕获onblur事件,同时还要确定用户是否触发了onblur"点击"关于其中一个建议?

希望我的问题有道理。

1 个答案:

答案 0 :(得分:1)

我尝试了很多不同的东西,包括在父div中包装我的文本输入字段和我的autoFill div,并在父节点上设置onblur - 但没有任何效果。显然你不能在div上分配一个onblur事件(因为它不能得到焦点开始)。

答案是在Seth建议的onblur事件上设置超时。

onblur="setTimeout(function() {closeSuggestionBox();}, 100);"

我在帖子here上找到了很好的解释。