一般信息: 我正在使用数据选择器为商店设置营业时间..整整一年。 为此,我有按钮来选择全年的所有星期一等,然后我有其他按钮添加类。 例如,您单击“星期一”,它会选择日历中一年中的所有星期一。 然后你点击“课程”按钮,所有星期一都会在9:00-17:00'开始营业。
我这样做是通过每天使用课程信息保存366天的数组。因此,每天选择一天或多天只需转换为一年中的某一天,并更新数组的索引。
这很好用,但现在我希望在一周内达到同样的效果。所以我做了以下事情:
我正在尝试实现自定义日期名称,将其转换为链接以选择该月的所有星期一。 到目前为止我得到了什么:
//javascript
$("#datepicker").datepicker({
...
beforeShowDay: setHollidays,
dayNamesMin: ['<a class="weekSelector" href="7">Zo</a>',
'<a class="weekSelector" href="1">Ma</a>',
'<a class="weekSelector" href="2">Di</a>',
'<a class="weekSelector" href="3">Wo</a>',
'<a class="weekSelector" href="4">Do</a>',
'<a class="weekSelector" href="5">Vr</a>',
'<a class="weekSelector" href="6">Za</a>'],
monthNames: ['January<span class="invisible">0</span>',
'February<input type="hidden" value="1" class="invisible"/>',
'March<input type="hidden" value="2" class="invisible"/>',
'April<input type="hidden" value="3" class="invisible"/>',
'May<input type="hidden" value="4" class="invisible"/>',
'June<input type="hidden" value="5" class="invisible"/>',
'July<input type="hidden" value="6" class="invisible"/>',
'August<input type="hidden" value="7" class="invisible"/>',
'September<input type="hidden" value="8" class="invisible"/>',
'October<input type="hidden" value="9" class="invisible"/>',
'November<input type="hidden" value="10" class="invisible"/>',
'December<input type="hidden" value="11" class="invisible"/>'],
...
});
//selects all days of the month (for one month) that are a given week days. for example: all mondays
$("a.weekSelector").click(function () {
selDay = $(this).attr("href"); // get the day index
markerType = 'month'; //use in beforeShowday function to select the days
//添加了代码
var container = $(this).parent('。ui-datepicker-group');
警报($(容器).find( '看不见的。')VAL());
//添加代码的结尾
$( “#日期选择器”)日期选择器( “刷新”)。
resetMultiSelect(); //重置用于选择的变量
返回false;
});
//setHollidays adds the correct classes the the days.
这也有效,但如果在第一个月(即一月)总是选择日期。 因为我没有月份的访问权限。因此,当我为“3月”选择标题“星期一”时,将选择1月的所有星期一。
所以最后这里是我的问题:如何在$(“a.weekSelector”)中获得月份(或月份的第一个日期)。点击功能?
编辑:当它完成后,它将变成一个drupal模块,可能是一个jquery插件。
答案 0 :(得分:0)
这是我修复它的'脏'方式(在点击功能中):
var el = $(this);
var offset = el.offset();
var elTop = offset.top;
var elLeft = offset.left;
var arr = $("a.weekSelector[href='"+selDay+"']");
$.each(arr, function(i, val) {
var curTop = $(val).offset().top;
var curLeft = $(val).offset().left;
if((elTop == curTop) && (elLeft == curLeft))
{
selmonth = $(".invisible:eq("+i+")").val();
}
});
这基本上做的是检索具有与单击的href相同的href的所有周选择器(例如所有'星期一'链接),然后将该偏移与被点击元素的偏移进行比较。 然后我使用了我从中得到的id,来搜索隐藏的字段。
我尝试在DOM中搜索隐藏字段,但似乎总是返回undefined。