jQuery UI Datepicker - 日期范围 - 突出显示之间的日期
我正在寻找一种方法来突出显示鼠标悬停时两个输入的日期范围之间的日期。
这个例子几乎完成了我想要实现的目标: http://hackingon.net/files/jquery_datepicker/range.htm
唯一的区别是所选范围的突出显示应该发生在两个单独的日期选择器和鼠标悬停时。
有什么建议吗?
更新:
好的,更多细节:
从第一个日期选择器中选择日期后,第二个日期选择器应突出显示先前选择的日期。如果您将鼠标悬停在上一个所选日期之后的一天上,则中间的所有日期都应通过添加课程来突出显示。
更新: 这是我走了多远:
$("#input-service_date_leave, #input-service_date_return").datepicker({
rangeSelect: true,
beforeShow: customRange,
onSelect: customRange,
});
function customRange(input) {
if (input.id == "input-service_date_leave") {
$("#ui-datepicker-div td").die();
if (selectedDate != null) {
$('#input-service_date_return').datepicker('option', 'minDate', selectedDate).datepicker('refresh');
}
}
if (input.id == "input-service_date_return") {
$("#ui-datepicker-div td").live({
mouseenter: function() {
$(this).prevAll("td:not(.ui-datepicker-unselectable)").addClass("highlight");
},
mouseleave: function() {
$("#ui-datepicker-div td").removeClass("highlight");
}
});
var selectedDate = $("#input-service_date_leave").datepicker("getDate");
if (selectedDate != null) {
$('#input-service_date_return').datepicker('option', 'minDate', selectedDate).datepicker('refresh');
}
}
}
http://jsfiddle.net/mayko/WbWg3/1/
唯一的问题是,实时事件仅突出显示当前悬停行的 td,而不是之前行的 td。
有什么想法吗?
I'm looking for a way of highlighting the days in between the date range of 2 inputs on mouse over.
This example is nearly doing what I want to achieve:
http://hackingon.net/files/jquery_datepicker/range.htm
Only difference is that the highlighting of the selected range should happen on two separate datepickers and on mouse over.
Any suggestions?
Update:
Ok, a bit more details:
After selecting a date from the first datepicker, the second datepicker should highlight the previous selected date. If you then mouse over a day past the previous selected day, all days in between should highlight by adding a class.
Update:
This is how far I got:
$("#input-service_date_leave, #input-service_date_return").datepicker({
rangeSelect: true,
beforeShow: customRange,
onSelect: customRange,
});
function customRange(input) {
if (input.id == "input-service_date_leave") {
$("#ui-datepicker-div td").die();
if (selectedDate != null) {
$('#input-service_date_return').datepicker('option', 'minDate', selectedDate).datepicker('refresh');
}
}
if (input.id == "input-service_date_return") {
$("#ui-datepicker-div td").live({
mouseenter: function() {
$(this).prevAll("td:not(.ui-datepicker-unselectable)").addClass("highlight");
},
mouseleave: function() {
$("#ui-datepicker-div td").removeClass("highlight");
}
});
var selectedDate = $("#input-service_date_leave").datepicker("getDate");
if (selectedDate != null) {
$('#input-service_date_return').datepicker('option', 'minDate', selectedDate).datepicker('refresh');
}
}
}
http://jsfiddle.net/mayko/WbWg3/1/
Only problem, the live event just highlights the td's of the current hovered row, but not the td's of the rows before.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我在你的脚本中添加了一些内容。在 JSFiddle 上工作得非常顺利。看一下然后告诉我。
I added a bit to your script. Worked like a charm on JSFiddle. Take a look and let me know.
编辑:此脚本不适用于 jquery 3。但它适用于版本 1 和 2
这个 JSFiddle 是使用 2 个日期表(多个月)执行此操作的示例
edit: This script does not work on jquery 3. however it does work on version 1 and 2
this JSFiddle is an example of doing it with 2 date tables ( multiple months )
在这里为内联日期选择器制作了日期范围悬停的示例:
http://codepen.io/denissamoilov/pen/RGKyPb?editors=0010
Made an example of date range hover for an inline datepicker here:
http://codepen.io/denissamoilov/pen/RGKyPb?editors=0010