Всем привет.
При клике (добавляю active к label) делает активными все элементы, а не текущий? Как быть?
$(document).on('change', '.compare-control', function(){
var id = $(this).val();
var url = '/?action=DELETE_FROM_COMPARE_LIST&ajax_action=Y&id='+id;
if ($(this).prop('checked')) {
url = '/?action=ADD_TO_COMPARE_LIST&ajax_action=Y&id='+id;
}
$.get(url, function() {
BX.onCustomEvent('OnCompareChange');
});
// здесь беда!!!при клике на элемент, делает элементы все активными, а не текущий.
if($('.catalog-content-main-item-top-fav').hasClass('active')) {
$('.catalog-content-main-item-top-fav').removeClass('active');
}else{
$('.catalog-content-main-item-top-fav').addClass("active");
}
});
BX.addCustomEvent('onCatalogDeleteCompare', function(id) {
$('.compare-control[value="'+id+'"]').prop('checked', false);
});
Код html:
<label class="catalog-content-main-item-top-fav <?= array_key_exists($arItem['ID'], $_SESSION["CATALOG_COMPARE_LIST"][5]['ITEMS'])?'active':''?>" >
<input onclick="function f(e) { e.preventDefault();}" style="display: none" type="checkbox" value="<?=$arItem['ID'];?>" class="compare-control" <? if(isset($_SESSION['CATALOG_COMPARE_LIST']['5']['ITEMS'][$arItem['ID']])):?> checked="checked" <? endif;?>>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path d="M12.2536 19.2043L12 19.055L11.7464 19.2043L5.28009 23.0103L6.73156 15.3278L6.78144 15.0638L6.58881 14.8765L1.09502 9.53481L8.50172 8.61114L8.7836 8.57598L8.89772 8.31586L12 1.24455L15.1023 8.31586L15.2164 8.57598L15.4983 8.61114L22.905 9.53481L17.4112 14.8765L17.2186 15.0638L17.2684 15.3278L18.7199 23.0103L12.2536 19.2043Z" fill="white" stroke="#E09B3D"/>
</svg>
</label>
а этот код срабатывает только после перезагрузки страницы: <?= array_key_exists($arItem['ID'], $_SESSION["CATALOG_COMPARE_LIST"][5]['ITEMS'])?'active':''?>