附加到jQuery Datepicker模糊事件

前端之家收集整理的这篇文章主要介绍了附加到jQuery Datepicker模糊事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在研究一个用于文本框的jQuery插件,我希望它能与使用文本框的jQueryUI小部件一起工作,例如datepicker.这导致我出现问题,因为似乎在实际设置值之前抛出了datepicker上的blur事件.

我使用的一种解决方法是在执行代码之前设置超时,以便有时间设置datepickers值.见下面的代码

$(this).blur(function() {
    // $(this).val() == ""
    var elem = $(this);
    setTimeout(function() {
        //elem.val() != ""
    },100);
});

我不确定这种解决方法解决问题的最佳解决方案,甚至是否能够始终有效.如果我将超时设置为10毫秒而不是100,它不起作用 – 我担心如果代码执行速度慢,100可能并不总是足够.

谁能想到更好的解决这个问题的方法呢?

解决方法

最后,我的解决方案是动态挂钩到onClose事件,如果有问题的文本框由datepicker使用(通过检查hasDatepicker类).这样做的问题是你不能像往常那样绑定到事件,因为datepicker只能将一个函数附加到它的特定事件上.为了解决这个问题,我检查是否已经附加了一个函数,如果有的话,请在我的代码之后调用它:
var elem = $(this);
var someFunction = function() {
    //elem.val() != ""
}
if (elem.hasClass('hasDatepicker')) {
    var onClose = elem.datepicker('option','onClose');
    elem.datepicker('option','onClose',function() {
        someFunction();
        if (onClose) { onClose(elem.val()); }
    });
} else {
    elem.bind('blur',someFunction);
}
原文链接:https://www.f2er.com/jquery/241422.html

猜你在找的jQuery相关文章