gpt4 book ai didi

jquery - 如何防止 jQuery uidatepicker 在日历的所有月份中突出显示所选(或当前)日期?

转载 作者:行者123 更新时间:2023-12-01 00:25:42 25 4
gpt4 key购买 nike

我已经多次浏览此插件的选项,但似乎找不到关闭此行为的方法:当前或选定的日期在小部件的所有月份中突出显示,而不仅仅是当前月份。例如,如果我选择 8 月 17 日,然后前进到 9 月、10 月等,那么这些月份中也会选择 17 日,这在我看来是没有意义的。我无法弄清楚它为什么这样做,甚至无法弄清楚它背后的基本原理(如果它是一个功能)(我想这可能是一个次要问题)。知道如何关闭它吗?所有月份的链接都被分配相同的 CSS 类。以下是我正在使用的选项:

var dates = $("#checkin").datepicker({
changeMonth: true,
numberOfMonths: 2,
dateFormat: 'M d, yy'
});

最佳答案

该错误(或功能,但我希望不是)是在 jQuery UI 1.8.4 版本中引入的(因此 D Hoerster 发布的演示可以工作,因为它使用的是 1.8.2 版本)。它的来源是this version中的第8384行。由谷歌托管。它涉及日期选择器实际 HTML 的生成。它位于一个循环内,迭代每个要绘制的月份。上面写着

var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));

现在,drawmonth/year是当前绘制的月份(废话),所以很明显发生了什么。结果就是您所说的问题 - 如果您选择一个月中的第 17 号,selectedDate当您迭代它们时,它们将被设置为每月的 17 日,并且这些将突出显示。根据变量名称( selectedDate )及其语义来判断,它应该改为声明

var selectedDate = this._daylightSavingAdjust(new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));

有趣的是,这个错误在1.8.2版本中也存在,但是执行高亮的代码在之前的版本中并没有使用它。在 1.8.2 中,突出显示当前日期的方式如下(第 8446 行):

(printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + // highlight selected day

查看代码,很明显它应该像 1.8.4 版本中那样(使用 selectedDate 而不是 currentDate ):

(printDate.getTime() == selectedDate.getTime() ? ' ui-state-active' : '') + // highlight selected day

<小时/>所以奇怪的是,自从 selectedDate之后就没有再出现任何错误了。显然是错误的并且在多个地方使用。 (事实上​​,尽管使用了错误的变量来突出显示当前日期,但以前的版本中没有任何问题)我已经查看这段代码太久了,所以我不知道我是对的还是完全错了。尽管如此,对于想要进一步调查并可能进行错误报告的人来说,这应该是一个很好的基础。当我有时间(并且恢复理智)时,我最终会自己做这件事

关于jquery - 如何防止 jQuery uidatepicker 在日历的所有月份中突出显示所选(或当前)日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3505420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com