Страница 1 из 1

data()

СообщениеДобавлено: 22 янв 2011, 16:38
tuareg
Здравствуйте. Подскажите пожалуйста Есть код. Я просто получаю объект, разбираю его, формирую строку и вставляю ее
Код: выделить все
$.each(object,function(name,name1){
   str+='<li id="sp'+name1.id+'" class="one">'+name1.nazv+'</li>';
});
$('#ttt').append(str);
$('li.one').data('какие-то','параметры');

У меня возник вопрос :?
Код: выделить все
$.each(object,function(name,name1){
   str+='<li id="sp'+name1.id+'" class="one">'+name1.nazv+'</li>';/*Можно ли кроссобраузерно сформировать строку уже с этими параметрами*/
});
$('#ttt').append(str);

И еще подскажите пожалуйста как в Firebug-е посмотреть эти параметры?
Заранее спасибо за ответы

Re: data()

СообщениеДобавлено: 23 янв 2011, 20:56
Gennady
/*Можно ли кроссобраузерно сформировать строку уже с этими параметрами*/

1. Что вызывает сомнения в кроссбраузерности?
2. допишите в коде в требуемом месте вывод в консоль:
Код: выделить все
console.log(str);

и смотрите на здоровье во вкладке консоль firebug'а

Re: data()

СообщениеДобавлено: 24 янв 2011, 12:16
zandroid
$('li.one').data() - вернет объект, в котором собраны все данные
Про кроссбраузерно - вряд ли возможно то, что вы хотите, потому как метод .data(key, value) сохраняет данные не в атрибуты тега, а в объектную модель, которую описать разметкой невозможно. Но если надо именно описывать разметкой данные - то это можно назвать метаданными и посмотреть в сторону плагина metadata

Re: data()

СообщениеДобавлено: 24 янв 2011, 12:27
Gennady
Gennady писал(а):
/*Можно ли кроссобраузерно сформировать строку уже с этими параметрами*/

1. Что вызывает сомнения в кроссбраузерности?

Все-таки объясните - что именно вызывает сомнения в кроссбраузерности?

Re: data()

СообщениеДобавлено: 24 янв 2011, 22:18
tuareg
Спасибо zandroid, да я тоже поискал, по ходу нельзя.
Геннадий, я прошу прощения, что так *криво* выразился. Я имел в виду следующее: можно ли избежать использовании ф-ии data(). А сразу присваивать их с помощью разметки или как-то еще.

Re: data()

СообщениеДобавлено: 26 янв 2011, 12:16
Kink
У меня схожая ситуация.

Клиент запрашивает у сервера html блок и вставляет его в требуемое место DOM.
Сервер возвращает html блок с его параметрами.
В настоящий момент параметры передаются и в дальнейшем на клиенте используются в виде атрибутов html блока.

Появилась необходимость ввести не скалярные параметры, а массивы. В связи с этим задумался над использованием .data(), тем более в интернетах для хранения данных блока рекомендуется использовать именно .data().

Соответственно возник вопрос, как красивее передавать эти параметры от сервера к клиенту.
В атрибуты как раньше записать в данном случае не получится.
На вскидку такие варианта:
1. Запрашивать параметры у сервера параметры отдельно.
2. Передавать клиенту скрипт, который заполняет параметры блока.
3. Передавать параметры как раньше в атрибуте (или скрытом подблоке блока) и клиентом при получении их парсить в data.
4. Передавать в блоке кусок JS который заполняет параметры. Вызывать его после загрузки блока.

Может есть более красивое решение?

Или нафиг этот data()? :)

Re: data()

СообщениеДобавлено: 26 янв 2011, 12:28
zandroid
Kink писал(а):Может есть более красивое решение?


Смотри мой коммент выше и ссылку на плагин.

Re: data()

СообщениеДобавлено: 26 янв 2011, 14:16
Kink
У него в тэгах нет версии 1.4 и ссылки на документацию и примеры не открываются:
* 1.1.x * 1.2.x * 1.3.x * Data * Metaplugin * Plugins * Utilities
http://docs.jquery.com/Plugins/Metadata
http://jqueryjs.googlecode.com/svn/trun ... index.html

Точно стоит его использовать? Может есть что по свежее?

Re: data()

СообщениеДобавлено: 26 янв 2011, 14:38
zandroid
Ссылки на доки отвалились недавно, может скоро поправят уже. Вообще там простейшая программа, которую можно при желании и самому написать, просто тут уже опробованный вариант. А то, что в тегах нет версии новой - дык это потому что её тогда ещё и не было (последняя версия плагина вышла в середине 2009, в jQuery 1.4 в начале 2010), но плагин успешно работает и с новой версией в силу своей простоты.

Примеры использования, кстати, есть прямо в исходном коде плагина, в самом начале файла с описанием. И на странице релизов http://plugins.jquery.com/node/672/release

Re: data()

СообщениеДобавлено: 27 янв 2011, 19:24
Kink
Оказывается его в 1.4.3 в API включили.

http://www.symbol.ru/blog/archives/17
http://api.jquery.com/data/ "HTML 5 data- Attributes"