我在我的网站上发现了一个jQuery UI Datepicker的问题.
当我点击输入时,它会正确显示日期选择器.
然而,当我没有选择任何日期时,我只是点击元素外面,它不会隐藏datepicker,我所期望的.
当我按Esc时,它会消失,当我选择一天它消失,但当我点击外面,它停留在那里.
有没有人能够找到问题?
提前致谢 :)
解决方法
你的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"); });
我遇到的问题是能够告诉跨度图标何时被点击,它真的不想合作,因此额外的有类检查