index-soutien/assets/js/product-size.js

48 lines
1.6 KiB
JavaScript
Raw Normal View History

2026-03-04 13:39:20 +01:00
/**
* Gestion de la sélection de taille pour les produits
* Met à jour l'attribut data-item-size au changement de sélection
*/
(function() {
'use strict';
/**
* Initialise la gestion des tailles
*/
function initSizeSelector() {
const sizeRadios = document.querySelectorAll('#list-size input[type="radio"]');
const addToCartButton = document.querySelector('.add-to-cart');
if (!addToCartButton) {
console.warn('Bouton add-to-cart non trouvé');
return;
}
// Définir la taille initiale (taille sélectionnée par défaut)
const checkedRadio = document.querySelector('#list-size input[type="radio"]:checked');
if (checkedRadio) {
addToCartButton.setAttribute('data-item-size', checkedRadio.value);
}
// Écouter les changements de sélection
sizeRadios.forEach(radio => {
radio.addEventListener('change', function() {
// Mettre à jour l'attribut data-item-size
addToCartButton.setAttribute('data-item-size', this.value);
// Optionnel: gérer la classe is-selected sur les li parents
// (pour compatibilité avec d'éventuels styles existants)
const allLi = document.querySelectorAll('#list-size li');
allLi.forEach(li => li.classList.remove('is-selected'));
this.closest('li').classList.add('is-selected');
});
});
}
/**
* Initialisation au chargement de la page
*/
document.addEventListener('DOMContentLoaded', initSizeSelector);
})();