First commit
This commit is contained in:
commit
f0591a20ab
71 changed files with 5682 additions and 0 deletions
47
assets/js/product-size.js
Normal file
47
assets/js/product-size.js
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
/**
|
||||
* 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);
|
||||
|
||||
})();
|
||||
Loading…
Add table
Add a link
Reference in a new issue