Как удалит прежние значение в JS?

djodofin

Постоялец
Регистрация
6 Июл 2017
Сообщения
328
Реакции
137
Здравствуйте.

Использую CMS Joomla! с интернет магазином JoomShopping.


Необходимо выбранному пользователем атрибуту (тип radio) в карточке товара присвоит значение data-bme, при выборе другого чтобы присвоиный ранее выбраному атрибуту (значение data-bme) удалялось а присваивалось только выбраному (активному атрибуту).

Привожу пример...

Не выбран ни один атрибут

<span class="radio_attr_label tooltip-src">XXL</span>
<span class="radio_attr_label tooltip-src">XXXL</span>
<span class="radio_attr_label tooltip-src">XXXXL</span>



Выбран к примеру атрибут XXXXL

<span class="radio_attr_label tooltip-src">XXL</span>
<span class="radio_attr_label tooltip-src">XXXL</span>
<span class="radio_attr_label tooltip-src" data-bme="">XXXXL</span>

Выбран к примеру атрибут XXL

<span class="radio_attr_label tooltip-src" data-bme="">XXL</span>
<span class="radio_attr_label tooltip-src">XXXL</span>
<span class="radio_attr_label tooltip-src">XXXXL</span>


Вот JS что при клике на атрибут добавляет значение (data-bme).


jQuery(function($){
$('body').on('click', '.input_type_radio label', function(){
$(this).find('.radio_attr_label').attr('data-bme', '');
});
});


Как сделать чтобы при выборе другого атрибута (XXL) с первого выбранного атрибута (XXXXL) присвоинный 'data-bme' удалялся.

Заранее, большое спасибо за помощь!
 
Как сделать чтобы при выборе другого атрибута (XXL) с первого выбранного атрибута (XXXXL) присвоинный 'data-bme' удалялся.
HTML:
jQuery(function($){
$('body').on('click', '.input_type_radio label', function(){
$('.radio_attr_label').removeAttr('data-bme');
$(this).find('.radio_attr_label').attr('data-bme', '');
});
});
 
Как добавить при (checked="checked") к класу radio_attr_label значени data-bme=""?


Структура radio атрибутов такая.
-------
Код:
<span id="block_attr_sel_5">

<span class="input_type_radio">
<input type="radio" name="jshop_attr_id[5]" id="jshop_attr_id561" value="61" onclick="setAttrValue('5', this.value);">
<label for="jshop_attr_id561">
<span class="radio_attr_label tooltip-src">
<img src="1.jpg" alt="">
Светло-серый
</span>
</label>
</span>

<span class="input_type_radio">
<input type="radio" name="jshop_attr_id[5]" id="jshop_attr_id562" value="62" onclick="setAttrValue('5', this.value);">
<label for="jshop_attr_id562">
<span class="radio_attr_label tooltip-src">
<img src="1.jpg" alt="">
Светло-серый
</span>
</label>
</span>

<span class="input_type_radio">
<input type="radio" name="jshop_attr_id[5]" id="jshop_attr_id563" value="63" onclick="setAttrValue('5', this.value);">
<label for="jshop_attr_id563">
<span class="radio_attr_label tooltip-src">
<img src="1.jpg" alt="">
Светло-серый
</span>
</label>
</span>

</span>
-------
Это выбранный атрибут (checked="checked")
<input type="radio" name="jshop_attr_id[5]" id="jshop_attr_id562" value="62" checked="checked" onclick="setAttrValue('5', this.value);">

Это НЕ выбранный атрибут (БЕЗ checked="checked")
<input type="radio" name="jshop_attr_id[5]" id="jshop_attr_id562" value="627а" onclick="setAttrValue('5', this.value);">

-------

Код:
<input type="radio" name="jshop_attr_id[5]" id="jshop_attr_id561" value="61" onclick="setAttrValue('5', this.value);">
<input type="radio" name="jshop_attr_id[5]" id="jshop_attr_id562" value="62" checked="checked" onclick="setAttrValue('5', this.value);">
<input type="radio" name="jshop_attr_id[5]" id="jshop_attr_id563" value="63" onclick="setAttrValue('5', this.value);">

-------

Как сделать что-бы активному атрибуту со значением (checked="checked") к класу <span class="radio_attr_label tooltip-src"> добавлялось значение ( 'data-bme' )
Чтото на подобие
-------

Код:
<span id="block_attr_sel_5">

<span class="input_type_radio">
<input type="radio" name="jshop_attr_id[5]" id="jshop_attr_id561" value="61" onclick="setAttrValue('5', this.value);">
<label for="jshop_attr_id561">
<span class="radio_attr_label tooltip-src">
<img src="1.jpg" alt="">
Светло-серый
</span>
</label>
</span>

<span class="input_type_radio">
<input type="radio" name="jshop_attr_id[5]" id="jshop_attr_id562" value="62" checked="checked" onclick="setAttrValue('5', this.value);">
<label for="jshop_attr_id562">
<span class="radio_attr_label tooltip-src" data-bme="">
<img src="1.jpg" alt="">
Светло-серый
</span>
</label>
</span>

<span class="input_type_radio">
<input type="radio" name="jshop_attr_id[5]" id="jshop_attr_id563" value="63" onclick="setAttrValue('5', this.value);">
<label for="jshop_attr_id563">
<span class="radio_attr_label tooltip-src">
<img src="1.jpg" alt="">
Светло-серый
</span>
</label>
</span>

</span>



Решение изложенное решение Не подходит, так-как через onclick срабатывает через раз...


Если я не ошибаюсь за (checked="checked") отвечает js по пути:

components\com_jshopping\js\functions.js

Код:
function reloadAttrValue(){
for(var id in attr_value){
if (jQuery("input[name=jshop_attr_id\\["+id+"\\]]").attr("type")=="radio"){
attr_value[id] = jQuery("input[name=jshop_attr_id\\["+id+"\\]]:checked").val();
}else{
attr_value[id] = jQuery("#jshop_attr_id"+id).val();
}
}
}
 
Последнее редактирование:
Здесь есть кто?
 
Закинул код в теги.
 
Назад
Сверху