Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как удалить параметр из data? (https://javascript.ru/forum/jquery/32633-kak-udalit-parametr-iz-data.html)

Shitbox2 23.10.2012 23:13

Как удалить параметр из data?
 
$element.data('option',{'opt1':1,'del1':'1'})

Как удалить параметр del1 (полностью, вместе с ключом) из $element.data()? Можно это сделать без промежуточных сохранений и т.п.?

BallsShaped 23.10.2012 23:30

Это ж элементарно:
delete $element.data( "option" ).del1;

Shitbox2 24.10.2012 07:28

Черт, не до конца уточнил. А можно удаление встроить в цепочку? Нужно удалить параметр из даты в середине цепочки манимуляций

Gvozd 24.10.2012 09:13

Метода для того чтобы простым способ это сделать, вроде как не предусмотрено.
Но можно подхачить например так:
$element.each(function() {
    delete $(this).data( "option" ).del1;
});

Shitbox2 24.10.2012 09:50

Ага, тоже думаю в сторону each.
И еще проблема возникла...

Делаю так:
var $element = $($.fn.item.default.template).clone().data('option s', $.fn.item.default)
delete $element.data('options').template

Т.е. беру из дефолтных настроек параметры, в том числе тот, который описывает html объекта (template), затем клонирую их в объект, а параметр template удаляю, т.к. элемент уже содержит его в себе. Проблема в том, что параметр удаляется из $.fn.item.default, а не из клона. Можно это как-то обойти без громоздких конструкций?

Shitbox2 24.10.2012 11:43

Весь небольшой код http://jsfiddle.net/tamtakoe/46ZtB/
проблемная строчка в методе additem закомментирована

BallsShaped 24.10.2012 12:40

Это странно и не логично. Почему в одном объекте хранится 2 вида данных, чтобы затем их разделять? Почему бы не вынести шаблон элементов:
var $item = $($.fn.newline.template).clone().data('itemOptions', $.fn.newline.defaults)

Кстати, зачем clone()?

Shitbox2 24.10.2012 13:29

Это от того, что слизал плагин с Бутстрапа http://twitter.github.com/bootstrap/....html#tooltips Там у них всплывающие подсказки подобным образом реализованы и шаблон хранится вместе с параметрами. Рассчитывал, что сакральный смысл такого подхода дойдет до меня когда поумнею... Видимо, еще не поумнел)

А clone() действительно нигде не нужно. И так уникальный объект создается. Спасибо за замечание!

Shitbox2 24.10.2012 13:33

Ну и еще думал, что можно было бы посылать с сервера уникальные шаблоны для определенных элементов, но едва ли это потребуется, так что да, пожалуй лучше вынести шаблон


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