и передаю их в атрибут элемента $(".field--name-field-pms-colors"):
$("li.ui-menu-item").click(function() {
const $viewsFieldPmsColorData = $(this).find(".views-field-pms-color-data");
const $viewsFieldNameContent = $(this).find(".views-field-name .field-content").text();
const imageSrc = $viewsFieldPmsColorData.data("src");
const hex = $viewsFieldPmsColorData.data("hex");
const additionalColorData = {
[$viewsFieldNameContent]: {
'name': $viewsFieldNameContent,
'hex': hex,
'src': imageSrc
}
};
const additionalColorDataString = JSON.stringify(additionalColorData).replace(/"/g, '"');
$(".field--name-field-pms-colors").attr('data-custom-attribute', additionalColorDataString);
});
Проблема в том, что каждый последующий клик перезаписывает значение атрибута, а нужно на каждый клик добавлять новые значения через запятую.
при первом click на один <li> атрибут выглядит так:
<div class="field--name-field-pms-colors" data-custom-attribute="{&quot;1925c":{&quot;name&quot;:&quot;1925c&quot ;,"hex&quot;:&quot;#FE464C&quot;,&quot;src&quot;:&quot;&quot;}}"</div>
при втором click на другой <li> атрибут выглядит так:
<div class="field--name-field-pms-colors" data-custom-attribute="{"425c":{"name":"425c","hex":"#57586E" ,"src":""}}"</div>
Как это решить?
лучше выложи в какую-нибудь песочницу, так шанс что помогут будет выше
Обсуждают сегодня