Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 20.03.2016, 11:59
Аспирант
Отправить личное сообщение для karden Посмотреть профиль Найти все сообщения от karden
 
Регистрация: 16.01.2016
Сообщений: 57

Вроде нашел, то что мне надо. И даже, условно, работает.

$(function() {
    $(document).on("mouseenter",'[data-handler="selectDay"]',function(){
      var date = new Date($(this).data("year"), $(this).data("month"),$(this).text());
      var ReservID = $('this').attr('class');
      console.log(date) // работает!
      console.log (ReservID); // возвращает nul!
      console.dir(this) // возвращает объект td.ReservID24.poly1c3.poly2c3
    })
  });


Я добавил в BeforeShowDay дополнительный стиль ячейки "ReservIDXX", где ХХ - номер брони. Хотя сейчас уже думаю, что было бы лучше добавить атрибут к объекту "data-reservid='xx'". Это не получилось по причине того, что я в эту функцию не передается ссылка на объект (видимо, в связи с тем, что его еще нет). Реально ли как-то "воткнуть" свой атрибут?

И, собственно, основной вопрос в том, что вышеприведенный код возвращает ReservID=null, вместо перечисления стилей. В то время как console.dir выводит объект TD с описанием нужной ячейки (в которой классы прописаны).
Ответить с цитированием
  #22 (permalink)  
Старый 20.03.2016, 12:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

karden,
4 строка кавычки то зачем у this?
Ответить с цитированием
  #23 (permalink)  
Старый 20.03.2016, 12:52
Аспирант
Отправить личное сообщение для karden Посмотреть профиль Найти все сообщения от karden
 
Регистрация: 16.01.2016
Сообщений: 57

2 недели за компьютером почти не вылезаю... С утра не мог найти ошибку

Спасибо
Ответить с цитированием
  #24 (permalink)  
Старый 21.03.2016, 16:09
Аспирант
Отправить личное сообщение для karden Посмотреть профиль Найти все сообщения от karden
 
Регистрация: 16.01.2016
Сообщений: 57

Небольшой вопрос, который не понял из документации.

$( "#autoFIO" ).autocomplete({
	delay: 500,
	minLength: 3,
	source: getUserByRealName
});

function getUserByRealName(request, response) {
	// тут ajax-запрос не пишу, чтобы не забивать голову лишним
	var ajaxResult = ['Иванов1', 'Иванов2', 'Иванов3'];

	response (ajaxResult); //???
	return (ajaxResult); //???
} //function getUserByRealName()


Оба варианта не заработали. Из документации я понял, что response - функция, которой надо передать данные - не сработало. Через return - тоже не показало.

Как это надо исправить?

Спасибо.
Ответить с цитированием
  #25 (permalink)  
Старый 21.03.2016, 16:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

karden,
виджет autocomplete()
Ответить с цитированием
  #26 (permalink)  
Старый 28.03.2016, 18:59
Аспирант
Отправить личное сообщение для karden Посмотреть профиль Найти все сообщения от karden
 
Регистрация: 16.01.2016
Сообщений: 57

Добрый вечер.

Потихонечку вояю интерфейс...

Возникла необходимость вставить вот такой код, но после того, как ОНО получилось - понял, что это какой-то монстр. Разумеется, там где-то что-то пропустил, выдается ошибка, что совершенно понятно, т.к. совершенно не читаемо.

А как этот код написать "правильно" (концептульно правильно)? Шаблон... Может еще что...

$(  '<tr id="ReservListItem'+ReservID+'" class="xReservListItem">'+
					'<td>+DayStatus['RESERV'][ReservID]['DateReservedBegin']+' - '
						+DayStatus['RESERV'][ReservID]['DateReservedEnd']+' ('
						+DayStatus['RESERV'][ReservID]['ReservedDays']+')</td>'+
					'<td>'+DayStatus['RESERV'][ReservID]['UserFullName']+'<br>'
						+DayStatus['RESERV'][ReservID]['Phone']+'</td>'+
					'<td>t3</td>'+
					'</tr>').appendTo($("#ReservList"+AppartID));


Спасибо.

Последний раз редактировалось karden, 28.03.2016 в 19:24.
Ответить с цитированием
  #27 (permalink)  
Старый 28.03.2016, 19:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

karden,
строки 1-4 не осилил
ниже можно так
var tr = $("<tr>", {
    id: "ReservListItem" + ReservID,
    "class": "xReservListItem"
}).appendTo($("#ReservList" + AppartID));
var td = $("<td>").appendTo(tr);
var a = $("<a>", {
    text: DayStatus["RESERV"][ReservID]["DateReservedBegin"] + " - " + DayStatus["RESERV"][ReservID]["DateReservedEnd"] + " (" + DayStatus["RESERV"][ReservID]["ReservedDays"] + ")",
    click: onClc
}).appendTo(td);
var td = $("<td>").appendTo(tr);
var a = $("<a>", {
    text: "t3",
    click: onClc
}).appendTo(td);

или пример тут строки 22 - 28
Скрипты - уровень ученик.
Ответить с цитированием
  #28 (permalink)  
Старый 28.03.2016, 20:48
Аспирант
Отправить личное сообщение для karden Посмотреть профиль Найти все сообщения от karden
 
Регистрация: 16.01.2016
Сообщений: 57

Супер! Спасибо
Ответить с цитированием
  #29 (permalink)  
Старый 28.03.2016, 22:09
Аспирант
Отправить личное сообщение для karden Посмотреть профиль Найти все сообщения от karden
 
Регистрация: 16.01.2016
Сообщений: 57

Вроде, понимаю суть проблемы, но не могу понять как в этим бороться:

for (AppartID in ReservesList) {
   for (ReservID in ReservesList[AppartID]) {
      console.log(AppartID, ReservID);
      $('#ReservListItem'+ReservID).click(function(){
	fShowDModal({
	   "AppartID": AppartID,
	   "ReservID": ReservID+''
	});
      });
   } // for2
} // for (AppartID in ReservesList)


В момент генерации - значения AppartID, ReservID - правильные. Но, когда происходит .click, значения - последние, которые и используются для всех событий.

Надо как-то "зафиксировать" значения...
Ответить с цитированием
  #30 (permalink)  
Старый 28.03.2016, 22:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

karden,
не используйте for или нужно замыкание переменных
for (AppartID in ReservesList)
    for (ReservID in ReservesList[AppartID]) $("#ReservListItem" + ReservID).click(function(a, b) {
        return function() {
            fShowDModal({
                "AppartID": a,
                "ReservID": b + ""
            })
        }
    }(AppartID, ReservID));
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интервалы дат в jQuery UI Datepicker treef jQuery 1 17.06.2016 02:24
Календарь DatePicker TanyaRom jQuery 4 14.10.2015 10:32
Пустое передаваемое значение input Календарь (Datepicker) Compas jQuery 2 21.09.2011 09:26
datepicker календарь не отображается в MF и IE Sheldo jQuery 0 21.06.2011 08:33
DatePicker не работает при сипользование innerHTML AJlekceu jQuery 2 26.10.2008 17:49