Autocompleter и datasets

13 views
Skip to first unread message

petrovich

unread,
Jun 20, 2012, 9:22:59 PM6/20/12
to right...@googlegroups.com
Добрый день. У вас написано, что Autocompleter ожидает в ответе от сервера обычный список в виде простых UL/LI тэгов. Я добавил в элемент LI вот такую конструкцию <li data-value="{id:1}">какой-то текст</li>, а в событии done хочу вытащить значение id.
Т.е  Autocompleter отрабатывает и рисует в input "какой-то текст", но для дальнейших манипуляций с результатом ответа мне нужны дополнительные данные, которые я пытаюсь передать через datasets. У вас есть метод data , который вероятно мне поможет в моей проблеме, но понять как его использовать в данном случае я не знаю, т.к метод data работает с элементами, а в событие done Передаётся непонятный объект.
Подскажите пожалуйста как мне получить значение id?

Nikolay Nemshilov

unread,
Jun 20, 2012, 10:27:31 PM6/20/12
to right...@googlegroups.com
console.log(какой-то непонятный объект); click, click, click

или так

completer.on('done', function(event) {
  console.log(event.target.find('li.current').data('value').id);
});


--
Thanks,
Nikolay

petrovich

unread,
Jun 21, 2012, 5:32:23 AM6/21/12
to right...@googlegroups.com
Да, это я делал. И по дереву объектов кликал и в таргет заглядывал. И т.д и т.п. В результате всегда получается, вот это:  TypeError: Object [object Object] has no method 'data' Пробовал вместо метода data использовать метод get('data-value-id'), но и в этом случае тоже ошибка  TypeError: Object [object Object] has no method 'get'
Если вызов изменить таким образом:  event.target.find('li.current', true), то на выходе имеем следующую строку <li data-value="{id:1}" class="current">Первая строка</li>
Т.е там таки есть данные. Но вот дальше клин.

Nikolay Nemshilov

unread,
Jun 21, 2012, 6:11:57 AM6/21/12
to right...@googlegroups.com
а для чего у вас `, true` ?


--
Thanks,
Nikolay

petrovich

unread,
Jun 21, 2012, 6:58:21 AM6/21/12
to right...@googlegroups.com
Просто хотел посмотреть верный ли элемент вернулся, не более того.

Nikolay Nemshilov

unread,
Jun 21, 2012, 7:05:01 AM6/21/12
to right...@googlegroups.com
имелось ввиду

event.target.find('li.current')[0].data('value');

или так

event.target.first('li.current').data('value');


--
Thanks,
Nikolay

petrovich

unread,
Jun 21, 2012, 9:13:49 AM6/21/12
to right...@googlegroups.com
Получилось вот так:
event.target.find('li.current')[0]._.dataset.value
Спасибо за помощь.

Nikolay Nemshilov

unread,
Jun 21, 2012, 9:35:18 AM6/21/12
to right...@googlegroups.com
dataset не работает в старых браузерах.

у .find('...')[0] должен быть метод .data для этих целей


--
Thanks,
Nikolay
Reply all
Reply to author
Forward
0 new messages