jQueryUI 日期选择器上的焦点事件
Posted
技术标签:
【中文标题】jQueryUI 日期选择器上的焦点事件【英文标题】:Focus event on jQueryUI datepicker 【发布时间】:2014-05-03 12:30:02 【问题描述】:我想用附加的 Datepicker 处理输入元素上的焦点事件以保存原始值。
不幸的是,对弹出元素(如下个月按钮)的任何点击似乎也会在输入时生成焦点事件。它们看起来与输入中的真实焦点事件完全一样。
看到这个fiddle。
<input id="dt" type="text"></input>
和
$("#dt")
.datepicker()
.on('focus blur', function(e)
console.warn("!%s", e.type, this, arguments[0], event);
);
如何只处理真正的焦点事件而忽略其余事件?
【问题讨论】:
e.isTrigger
??? jsfiddle.net/Lb5L2/5
“真实”和“假”焦点事件有什么区别?你想做什么?
@Zhihao 真实事件由浏览器(鼠标)生成,假事件由jquery合成
@A.Wolff 虽然 e.isTrigger 可以解决问题,但它不是公共 API。
@MarcinWisnicki 那么e.originalEvent
???
【参考方案1】:
如果我正确理解您想要做什么,您可以在事件处理程序中保留一些状态。当您获得焦点事件时,将 datePickerOpened
标志设置为 true,并且仅在收到事件时该标志为 false 时执行您的操作。然后,当你得到 blur 事件时,将 datePickerOpened
设置为 false。
【讨论】:
不幸的是,还有虚假的模糊事件。以上是关于jQueryUI 日期选择器上的焦点事件的主要内容,如果未能解决你的问题,请参考以下文章