ドラッグ イベントを使用して、テーブル内のすべての td を選択する必要があります。私が達成しようとしているのは、最初に選択した td に基づいて、最後に選択した td までの日付範囲を作成することですが、それらは複数の行にまたがることができます。現時点では、nextUntil()
withandSelf()
を使用して最後に選択したものを含めていますが、現在の tr 内の 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);
});
};