JS事件监听器:OnBlur事件:结果取决于所点击的内容

时间:2012-12-01 11:49:45

标签: javascript javascript-events

我有一个带有弹出日历日期选择器的日期输入框。当我点击日期框时,会出现弹出日历。然后我可以

  • 选择日期。日期显示在日期框中,日历显示
  • 点击日历外部。日历消失了。这是通过mouseup事件来检查点击的内容。
  • 在日期框中输入日期。

我想要的:当我在日期框和标签中输入日期时,我希望日历消失。我通过在日期框中添加onBlur事件来尝试这个。这件事让日历消失了。但是,这意味着当我在日历中单击时,日历会消失,这是我不想要的。所以我需要某种日期框onBlur事件来检查日历是否被点击/有焦点。或完全不同的东西。

我试图检查日历是否有焦点。使用jquery我做了:

target = $("*:focus");

这没什么用处。通常我会使用onCLick事件来查看点击的内容,但之后我需要OnClick和OnBlur事件,而OnBlur事件需要onClick事件的结果。但是,我似乎无法控制首先调用的内容。

我尝试使用Chrome和IE JS调试器来查看发生了什么,但添加断点似乎会改变调用的函数,这没有任何意义。在onBlur事件中添加断点:它在那里停止。在mouseUp事件中添加断点:它在那里停止。在两个事件中添加断点:它只在onBlur事件中停止,即使我继续。我必须再次单击才能触发mouseUp事件。

1 个答案:

答案 0 :(得分:0)

http://jsfiddle.net/alaa13212/Gs5Y2/

在jQuery中使用blur焦点。
必须关注元素(使用tabindex属性可聚焦)