0

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

  • 选择一个日期。日期出现在日期框中,日历出现
  • 在日历外单击。日历消失。这是通过一个 mouseup 事件来检查点击了什么。
  • 在日期框中键入日期。

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

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

target = $("*:focus");

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

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

4

1 回答 1

0

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

在 jQuery中使用blurfocusout。
必须专注于元素(使用tabindex可聚焦的属性)

于 2012-12-01T12:48:07.533 回答