jQuery获取两个单元格之间的表单元格范围
我正在构建自己的日期范围选择器(我知道jQueryUI自己的日期选择器,它不适合我的需要) 我正在使用on('mouseover')在已选择的签入日期和当前悬停日期之间选择一系列日期:jQuery获取两个单元格之间的表单元格范围,jquery,Jquery,我正在构建自己的日期范围选择器(我知道jQueryUI自己的日期选择器,它不适合我的需要) 我正在使用on('mouseover')在已选择的签入日期和当前悬停日期之间选择一系列日期: function datepicker_live_selection_hover_css(checkin) { $('.datepicker-cal-wrapper table tbody tr td.datepicker-cal-available').on('mouseover', func
function datepicker_live_selection_hover_css(checkin) {
$('.datepicker-cal-wrapper table tbody tr td.datepicker-cal-available').on('mouseover', function () {
var checkout_selected = datepicker_checkout_selected();
if ( (checkin !== null) && (checkout_selected == false) ) {
var hover_date = $(this).attr('data-date');
$('.datepicker-cal-wrapper table tbody tr td').each (function() {
var date = $(this).attr('data-date');
if ( (date > checkin) && (date <= hover_date) || (date < checkin) && (date >= hover_date) ) {
$('.datepicker-cal-wrapper table tbody tr td[data-date="' + date + '"]').addClass('datepicker-cal-selected-date');
} else {
$('.datepicker-cal-wrapper table tbody tr td[data-date="' + date + '"]').removeClass('datepicker-cal-selected-date');
}
});
}
});
}
function datepicker\u live\u selection\u hover\u css(签入){
$('.datepicker cal包装表tbody tr td.datepicker cal available')。on('mouseover',function(){
var checkout_selected=datepicker_checkout_selected();
如果((签入!==null)和(&(签出所选==false)){
var hover_date=$(this.attr('data-date');
$('.datepicker cal包装表tbody tr td')。每个(函数(){
变量日期=$(this.attr('data-date');
如果((日期>签入)和((日期=悬停日期)){
$('.datepicker-cal包装表tbody tr td[data date=“'+date+'”).addClass('datepicker-cal-selected-date');
}否则{
$('.datepicker-cal包装表tbody tr td[data date=“'+date+'“]”)。removeClass('datepicker-cal-selected-date');
}
});
}
});
}
这是很好的工作,但它是非常缓慢和滞后,我相信一定有一个更好的方法来做上述。目前,我正在使用foreach函数在所有表单元格中循环
有人能提出一种更有效的方法吗
这里是一个完整的JSFIDLE:这里是一个如何实现这一点的示例 注意:此函数也适用于其他表。 工作原理:
function datepicker_checkin_selected() {
var elements = $('.datepicker-cal-selected-checkin');
return elements.length > 0;
}
function datepicker_checkout_selected() {
var elements = $('.datepicker-cal-selected-checkout');
return elements.length > 0;
}
该死,这是一些有效的代码,现在一点也不落后了。我将不得不研究你的悬停/选择函数,这样我才能更好地理解它,也许可以修改许多其他代码,使之更有效地工作。非常感谢你的帮助!很高兴我能帮忙:)
function datepicker_checkin_selected() {
var elements = $('.datepicker-cal-selected-checkin');
return elements.length > 0;
}
function datepicker_checkout_selected() {
var elements = $('.datepicker-cal-selected-checkout');
return elements.length > 0;
}