jQuery UI datepicker在外部点击时不会隐藏

前端之家收集整理的这篇文章主要介绍了jQuery UI datepicker在外部点击时不会隐藏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的网站上发现了一个jQuery UI Datepicker的问题.

当我点击输入时,它会正确显示日期选择器.
然而,当我没有选择任何日期时,我只是点击元素外面,它不会隐藏datepicker,我所期望的.

当我按Esc时,它会消失,当我选择一天它消失,但当我点击外面,它停留在那里.

有没有人能够找到问题?

提前致谢 :)

链接http://bit.ly/SFeuzp

解决方法

你的datepickers有类hasDatepicker,所以尝试这样:
$(".hasDatepicker").blur(function(e) { $(this).datepicker("hide"); });

我99%积极,将工作!

和FYI,如果你想要它是动态的(适用于以后创建的输入),你可以使用.on

$(".hasDatepicker").on("blur",function(e) { $(this).datepicker("hide"); });

UPDATE (PS,to use the following completely remove the above from your code)

要回答您的评论,以下可能不是最好的解决方案,但通过试用和错误(在您的网站上,使用控制台)它的工作原理!与我想到的替代方法相比,它相对较短.

$(document).click(function(e) { 
    var ele = $(e.toElement); 
    if (!ele.hasClass("hasDatepicker") && !ele.hasClass("ui-datepicker") && !ele.hasClass("ui-icon") && !$(ele).parent().parents(".ui-datepicker").length)
       $(".hasDatepicker").datepicker("hide"); 
});

一线

$(document).click(function(e) { var ele = $(e.toElement); if (!ele.hasClass("hasDatepicker") && !ele.hasClass("ui-datepicker") && !ele.hasClass("ui-icon") && !$(ele).parent().parents(".ui-datepicker").length) $(".hasDatepicker").datepicker("hide"); });

我遇到的问题是能够告诉跨度图标何时被点击,它真的不想合作,因此额外的有类检查

猜你在找的jQuery相关文章