微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-如何将日期选择器包装在新的div中?

我需要将datepicker放在一个新的div中,这将是一个(shadow-)border-div.

我尝试了以下方法

beforeShow: function (input) {
  $(input).datepicker("widget")
   .find(".ui-datepicker-header, ui-datepicker-calendar")
   .wrapAll("<div class='datepickerBorder'/>");
}

但这行不通.

另外,我尝试包装整个选择器,但是border-div的位置,大小等不相同.

解决方法:

日期选择器控件是绝对定位的.将其包装在元素内将不包含该元素内的日期选择器-包装元素将仅位于页面底部,而日期选择器将呈现在控件旁边.

解决方案1:您可以将类添加到datepicker小部件本身:

$("#datepicker2").datepicker({
    beforeShow: function() {
        $(this).datepicker("widget").addClass("datepickerBorder");
    },
    onClose: function() {
        $(this).datepicker("widget").removeClass("datepickerBorder");
    }
});

demo

解决方案2:在DOM加载时创建一个绝对定位的隐藏包装div,并在显示日期选择器后重新定位div的大小.有一个陷阱:您不能在beforeShow函数中检查窗口小部件的偏移量(它将渲染的坐标).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐