我尝试在jquery完整日历中实现水平拖动选择,但没有取得成功。 可以进行日间垂直选择,但单次拖动中的一天选择不起作用。 伙计们,如果你有任何解决方案,请建议。
以下是我的完整日历代码:
$.createFullCalendarWithCurrentTime = function (selectCallback, eventsCallback,
mouseOverCallback, options, eventRenderCallback, curTime) {
calendar = $('#calendar').fullCalendar({
unselectAuto: false,
header: { left: 'prev', center: 'title', right: 'next' },
titleFormat: { week: "MMMM dd{ - dd, yyyy}" }, // Sep 7 - 13 2009 ,
defaultView: "agendaWeek",
// columnFormat: { month: 'ddd', week: 'ddd d/M', day: 'dddd d/M' },
columnFormat: { week: 'ddd d'},
eventBackgroundColor: options && options["eventBackgroundColor"] ?
options["eventBackgroundColor"] : "#FFEB00",
eventBorderColor: "#FFEB00",
eventTextColor: options && options["eventTextColor"] ? options["eventTextColor"] :
"#333333",
axisFormat: 'h(:mm) tt',
aspectRatio: 0.1,
buttonText: { prev: '', next: '' },
selectable: (selectCallback != null && $.isFunction(selectCallback) ? true : false),
selectHelper: true,
editable: false,
allDaySlot: false,
slotMinutes: slotMinute,
minTime: minTimeNew,
maxTime: maxTimeNew,
firstDay: 1,
eventMouseover: mouseOverCallback,
viewDisplay: function () {
// Create slots table only if not created
},
select: selectCallback,
events: eventsCallback,
eventRender: eventRenderCallback
});
return calendar;
};
function slotBind(cells) {
cells.click(slotClick)
.mousedown(slotSelectionMousedown);
}
function slotSelectionMousedown(ev) {
if (ev.which == 1 && opt('selectable')) { // ev.which==1 means left mouse button
unselect(ev);
var dates;
hoverListener.start(function (cell, origCell) {
clearSelection();
if (cell && cell.col == origCell.col && !cellIsAllDay(cell)) {
var d1 = cellDate(origCell);
var d2 = cellDate(cell);
dates = [
d1,
addMinutes(cloneDate(d1), snapMinutes), // calculate minutes depending on
selection slot minutes
d2,
addMinutes(cloneDate(d2), snapMinutes)
].sort(cmp);
renderSlotSelection(dates[0], dates[3]);
} else {
dates = null;
}
}, ev);
$(document).one('mouseup', function (ev) {
hoverListener.stop();
if (dates) {
if (+dates[0] == +dates[1]) {
reportDayClick(dates[0], false, ev);
}
reportSelection(dates[0], dates[3], false, ev);
}
});
}
}