我正在构建一个类似于datepicker的小部件,但是当(a)用户从输入框跳出或(b)在小部件和输入之外单击时,我无法弄清楚如何使它消失。
将模糊事件绑定到输入框很容易,但问题是当您单击小部件时它会被触发,并且似乎没有可靠的方法来确定焦点从内部更改为哪个元素模糊事件。
当用户在输入之外单击时关闭小部件也有点粗略,但它是可行的:
$('body').on('click', function(e) {
if(e.target != self.element[0] && e.target != self.clock[0] && !$.contains(self.clock[0], e.target)) {
self.clock.hide();
}
});
但是,如果我能弄清楚如何正确处理 blur 事件(这也可能由元素外部的制表符触发),我就不需要了。