обща информация: Използвам datpicker, за да задам работно време за магазини.. за цяла година. За това имам бутони за избор на всички понеделници и т.н. от цялата година и след това имам други бутони, които добавят класовете. например щракнете върху "понеделник", което избира всички понеделници от годината в календара. след това щракнете върху бутона „клас“ и всички понеделници получавате работно време „9:00-17:00“.
Правя това, като запазвам масив от 366 дни с информация за класа за всеки ден. Така че всеки избор на един или повече дни просто се преобразува в ден от годината и този индекс на масива се актуализира.
това работи добре, но сега искам да постигна същия ефект на седмична база. така че направих следното:
Опитвам се да постигна персонализирани имена на дни, превръщайки ги във връзки, за да избера например всички понеделници от този месец. какво имам досега:
//javascript
$("#datepicker").datepicker({
...
beforeShowDay: setHollidays,
dayNamesMin: ['<a class="weekSelector" href="/bg7">Zo</a>',
'<a class="weekSelector" href="/bg1">Ma</a>',
'<a class="weekSelector" href="/bg2">Di</a>',
'<a class="weekSelector" href="/bg3">Wo</a>',
'<a class="weekSelector" href="/bg4">Do</a>',
'<a class="weekSelector" href="/bg5">Vr</a>',
'<a class="weekSelector" href="/bg6">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');
alert($(container).find('.invisible').val()); // край на добавения код $("#datepicker").datepicker("refresh"); resetMultiSelect(); //нулиране на променливи, използвани за селекцията
return false; });
//setHollidays adds the correct classes the the days.
това също работи, но ако дните винаги се избират през първия месец (т.е. януари). Защото нямам достъп до месеца. така че когато избера заглавката „понеделник“ за месец „март“, всички понеделници за януари са избрани.
така че най-накрая ето моят въпрос: как мога да получа месеца (или първата дата от месеца) във функцията $("a.weekSelector").click?
редактиране: когато приключи, ще бъде превърнат в модул на drupal и вероятно в jquery плъгин.