不確定如果這會幫助你。我建議從日曆中收集日期,然後製作滑塊。
工作實例:https://jsfiddle.net/Twisty/anet04mv/6/
這裏有亮點:
function harvestDays(target) {
var dayElems = target.find("[data-handler='selectDay']");
var days = [];
dayElems.each(function(ind, el) {
days.push({
day: parseInt($(el).text()),
selected: $(el).hasClass("ui-datepicker-current-day")
});
});
console.log("Found " + days.length + " Days. ", days);
return days;
}
function makeDaySlider(target, ds) {
var current = 0;
$.each(ds, function(k, v) {
if (v.selected) {
current = k;
}
});
var $cont = $("<div>", {
class: "ui-daypicker-div"
});
$cont.append("<dl></dl>");
$cont.find("dl").append("<dt class='ui-daypicker-label'>Day</dt>");
$cont.find("dt").append("<dd class='ui-daypicker-day'></dd>");
$slide = $("<div>", {
class: "ui-tpicker-day-slider"
});
$cont.find("dd").append($slide);
$cont.insertAfter(target.find(".ui-datepicker-calendar"));
$slide.slider({
max: ds.length,
value: current
});
console.log("Created Day Slider for " + ds.length + " Days, current day selected: " + (current + 1), $slide);
}
目前,這將會一直工作到本月改變。只需將新日曆反饋回來,並更換滑塊以獲取新的天數。
因爲我不知道你想要完成什麼,我不確定這是你想要的。我認爲你可能希望滑塊改變選定的日期......這將需要回撥slide
。
您希望用戶使用Slider而不是從日期列表中選擇一天?如果月份發生變化,您是否希望天數與其一起調整?目的不明確。 – Twisty