我需要选择所有的td在我的表与拖动事件。我试图实现的是基于我第一次选择的td创建一个日期范围,直到最后一次选择的td,但它们可以跨越多行。目前,我使用nextUntil()
和andSelf()
来包含最后选择的,但它只选择当前树中的td。下面是我的代码示例。任何帮助请。
this.BindCalendarMouseDrag = function () {
var isMouseDown = false;
var isHighlighted;
var selectedDays = [];
$(".tabCalendarContainer tr.trCalWeek td")
.mousedown(function () {
isMouseDown = true;
$(this).addClass("highlighted");
isHighlighted = $(this).hasClass("highlighted");
selectedDays.push($(this));
return false; // prevent text selection
})
.mouseover(function () {
if (isMouseDown) {
$(this).addClass("highlighted", isHighlighted);
var firstSelectedDay = selectedDays[0];
firstSelectedDay.nextUntil($(this)).andSelf().add($(this)).addClass("highlighted", isHighlighted);
selectedDays.push($(this));
}
})
.bind("selectstart", function () {
return false;
});
$(document).mouseup(function () {
isMouseDown = false;
//alert(selectedDays.length);
});
};
1条答案
按热度按时间uttx8gqw1#
我冒昧地构造了一个小提琴,它用可拖动的工作日来说明日历。它还不能满足用户拖动的需要,但是你应该能够很容易地调整代码来适应它。