Fil*_*nes 17 jquery jquery-ui datepicker jquery-ui-datepicker
我在我的网站上发现了jQuery UI Datepicker的问题.
当我点击输入时,它确实显示了一个日期选择器.然而,当我没有选择任何日期并且我只是在元素外部点击时,它不会像我期望的那样隐藏日期选择器.
当我按Esc时,它会消失,当我选择一天它消失但当我点击外面时它会停留在那里.
有没有人能够找到问题?
提前致谢 :)
SpY*_*3HH 22
你的datepickers有这个类hasDatepicker,所以试试这个:
$(".hasDatepicker").blur(function(e) { $(this).datepicker("hide"); });
Run Code Online (Sandbox Code Playgroud)
我99%肯定会起作用!
而且,仅供参考,如果您希望它是动态的(适用于之后创建的输入),您可以使用.on
$(".hasDatepicker").on("blur", function(e) { $(this).datepicker("hide"); });
Run Code Online (Sandbox Code Playgroud)
更新 (PS,使用以下内容从您的代码中完全删除上面的内容)
要回答您的评论,以下可能不是最好的解决方案,但通过试验和错误(在您的网站上,使用控制台)它的工作原理!与我想到的其他方式相比,它相对较短.
$(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");
});
Run Code Online (Sandbox Code Playgroud)
作为一线
$(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"); });
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是能够判断何时点击了跨度图标,它真的不想合作,因此额外的有类检查
小智 10
我稍微修改了@SaraVanaN的代码,它看起来像这样:
$(document).on("click", function(e) {
var elem = $(e.target);
if(!elem.hasClass("hasDatepicker") &&
!elem.hasClass("ui-datepicker") &&
!elem.hasClass("ui-icon") &&
!elem.hasClass("ui-datepicker-next") &&
!elem.hasClass("ui-datepicker-prev") &&
!$(elem).parents(".ui-datepicker").length){
$('.hasDatepicker').datepicker('hide');
}
});
Run Code Online (Sandbox Code Playgroud)
我改变了这一行,$(document).on("click", function(e) {但是你不管怎么做,.on("click")或者我
为我工作的.click()
这条线,你应该重新检查你的网页日期选择器,因为现在,对我来说,当你点击弹出的日期日期立即关闭,你不能选择任何日期......!$(elem).parents(".ui-datepicker").length.parent()div
| 归档时间: |
|
| 查看次数: |
42666 次 |
| 最近记录: |