除非单击特定元素,否则将显示火灾模糊事件

时间:2012-09-05 20:53:07

标签: javascript jquery onblur

我有三个搜索类别(见第一张图片)。用户选择一个,我在类别的空间中显示与该主题对应的搜索输入(参见第二张图像)。我使用jQuery自动关注输入,以便用户可以轻松地开始输入。如果用户改变主意并模糊输入,我会隐藏它并再次显示三个类别。

如果用户点击Enter进行搜索,这一切都很有效,但我也想让他们能够点击搜索输入字段旁边的go按钮。问题是如果他们试图单击go按钮,输入会模糊,然后隐藏,提交点击永远不会被触发(我点击此元素时无法取消绑定模糊事件,因为它永远不会被触发 - 首先触发模糊)< / p>

State 1:

state 2:

那么有没有办法执行绑定到blur事件的函数(隐藏div)除非使用jQuery或JavaScript点击这个“go”元素?

2 个答案:

答案 0 :(得分:1)

您有几种选择:

  1. 如果焦点已移到容器外的某处,则只能隐藏模糊输入,因此如果焦点已转到“开始”按钮,则根本不会隐藏输入。

  2. 您可以将代码设计并将搜索问题作为ajax调用而不是表单提交。

  3. 您可以在短暂的setTimeout()之后隐藏模糊输入,这样可以让表单提交在隐藏之前发送。

答案 1 :(得分:1)

不是将blur事件放在输入上,而是将blur事件放在容纳输入和Go按钮的容器上。