jquery Kendo UI DatePicker动画导致日历重复

5m1hhzi4  于 2023-10-17  发布在  jQuery
关注(0)|答案(2)|浏览(114)

我有一个Kendo UI DatePicker。仅在IE中,当我打开它并单击月份时,日历被复制(问题与Kendo datepicker shows two months during animation相同,但那里的答案对我不起作用):

当我使用IE的调试器从元素中删除一个框大小样式时,日历就像预期的那样工作了:

我的问题是双重的:
1.有人知道为什么盒子尺寸会导致这种情况发生吗?
1.如何使用jQuery将此属性设置为空(或完全删除它)?
我试过这样做,但它不会删除它:

$('.k-calendar-container').parent('.k-animation-container').css('box-sizing', '');

我还尝试将属性值从content-box更改为border-box,虽然更改了值,但并没有解决问题:

$('.k-calendar-container').parent('.k-animation-container').css('box-sizing', 'border-box');
gblwokeq

gblwokeq1#

我发现的解决方案是直接通过样式表。然而,因为覆盖kendo.common.less(在动画容器中找到的类)不是一个好主意,所以我做的是编写自己的less文件,覆盖kendo样式表,只包含需要调整的类:

kendo-override.less:

/* In the original kendo.common.less file, the class includes
   box-sizing: content-box

   This was causing IE kendo UI DatePicker
   to duplicate the calendar when you clicked to change the month.
*/
.k-animation-container,
.k-animation-container *,
.k-animation-container *:after,
{
   -webkit-box-sizing: content-box; // chrome
   -moz-box-sizing: content-box; // firefox
}
6tdlim6h

6tdlim6h2#

你可以用CSS来做,只要覆盖这个CSS类就可以了。

.k-calendar-table {
  width: 100% !important;
  display:table-cell !important;
}

相关问题