Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Календарь на подобие Datepicker (https://javascript.ru/forum/jquery/61660-kalendar-na-podobie-datepicker.html)

karden 28.03.2016 22:43

Спасибо,
это одна из тем, которые с первого захода совсем не пошли. Сейчас чуть в голове все уложится, попробую непонятные темы еще раз "вкурить".

рони 30.03.2016 19:54

karden,
в этом случае лучше создать новую тему ...

karden 05.04.2016 11:08

Снова вопрос...

При наведении на ячейку таблице (в datepicker) мне надо получить аттрибут, который присвоен тегу DIV, в который вставлен этот календарь

console.dir($(this).parent().parent().parent().parent().parent().parent().attr('appart-id'));


Этот код - работает, но выгляди уж очень страшно. :(

Может это можно как-то более аккуратно реализовать?

Спасибо

рони 05.04.2016 11:34

karden,
а класс у div есть?
$(this).parents('точка_класс').attr('appart-id')

или даже так
$(this).parents('[appart-id]').attr('appart-id')

karden 05.04.2016 11:43

Класс!!! Спасибо

karden 05.04.2016 22:13

Опять заткнулся... :)

Надо сделать автоматический скроллинг таблицы с описанием дат на календаре.

В сети нашел такое решение: http://jsfiddle.net/tzjrq1vt/2/ , которое и было взято за основу.

Вот, что получилось...

$(document).on("mouseenter",'[data-handler="selectDay"]',function(){

// Всякое...

if (ReservID > 0) {

    var w = $('#ReservListDiv' + AppartID);
    var table = $('#ReservList' + AppartID);
    var row = table.find('tr')
        .eq( +$('#ReservListItem'+ReservID).index());

    if (row.length) {
console.log('w.height()='+w.height(), 'row.position().top='+row.position().top);


//        $('#ReservList' + AppartID).animate({scrollTop: row.offset().top - (w.height()/2)}, 1000 );
        $('#ReservList' + AppartID).animate({'top': row.position().top+'px'}, 1000 );
    }


});

// Таблица - шапка из шаблона:

<div id="ReservListDiv<TMPL_VAR NAME="ID">" style="height:150px; overflow:auto; margin-top:20px;">
     <table width="100%" id="ReservList<TMPL_VAR NAME="ID">" class="DataList ReservesList">
	  <thead>
       <tr>
        <th width="200"><span style="position:absolute; top:-20px; z-index:2; height:20px; ">Период</span></th>
        <th><span style="position:absolute; top:-20px; z-index:2; height:20px; ">Описание</span></th>
        <th><span style="position:absolute; top:-20px; z-index:2; height:20px; ">Статус</span></th>
       </tr>
       </thead>
     </table>
	</div>

// Добавляются строки так:

var dt = DayStatus["RESERV"][ReservID]["DateReservedBegin"].split('.');
		var DtTS = (new Date(dt[2],dt[1]-1,dt[0])).getTime();

		var tr = $("<tr>", {
			id: "ReservListItem" + ReservID,
			"class": "xReservListItem",
			'sortValue': DtTS
		}).appendTo($("#ReservList" + AppartID));

		var td = $("<td>", {
			
			text: DayStatus["RESERV"][ReservID]["DateReservedBegin"] + " - " +
				DayStatus["RESERV"][ReservID]["DateReservedEnd"] + " (" +
				DayStatus["RESERV"][ReservID]["ReservedDays"] + ")"
		}).appendTo(tr);

		var td = $("<td>", {
			html: DayStatus['RESERV'][ReservID]['UserFullName']+'<br>'+
				DayStatus['RESERV'][ReservID]['Phone']
		}).appendTo(tr);

		var td = $("<td>", {
			text: "text3"
		}).appendTo(tr);


в лог пишется все красиво (все нужные переменные похожи на правду)

shell?m=36:1095 w.height()=150 row.position().top=108
shell?m=36:1095 w.height()=150 row.position().top=126
shell?m=36:1095 w.height()=150 row.position().top=144
2shell?m=36:1095 w.height()=150 row.position().top=212
shell?m=36:1095 w.height()=150 row.position().top=178
3shell?m=36:1095 w.height()=150 row.position().top=246
shell?m=36:1095 w.height()=150 row.position().top=178
6shell?m=36:1095 w.height()=150 row.position().top=212
2shell?m=36:1095 w.height()=150 row.position().top=178
shell?m=36:1095 w.height()=150 row.position().top=212

Собственно, проблема, на сколько я понимаю, либо в вызове animate, либо в параметрах DIV или таблицы. Совсем не могу понять куда двигаться дальше... :(

Спасибо.

рони 05.04.2016 22:46

karden,
логической цепочки между всеми предложениями вашего сообщения не прослеживаю.

karden 05.04.2016 23:05

Надо сделать автоматический скроллинг таблицы с описанием дат на календаре. В сети нашел такое решение: http://jsfiddle.net/tzjrq1vt/2/ , которое и было взято за основу.

Все данные для animate (верхняя часть кода) - приходят, вроде корректно (хотя бы для какого-нибудь движения). В конце сообщения кусок лога из консоли, чтобы было видно какие данные приходят в animate

Но у меня есть опасение, что ошибка не в этой части кода, а в описании ДИВа или таблицы, поэтому их тоже воткнул в исходник.

рони 05.04.2016 23:15

karden,
вы сами то смотрели что находится по вашей ссылке?

karden 05.04.2016 23:18

Сорри, не ту ссылку взял... http://jsfiddle.net/SZKJh/1/


Часовой пояс GMT +3, время: 10:53.