Je ne peux pas appeler ma fonction jQuery

J’ai créé une fonction jQuery qui ajoute et supprime une classe en cliquant sur un bouton.

L’arrière-plan gris changera en fonction du bouton sur lequel vous cliquez car j’ajoute et supprime la classe de active-button chaque fois.

 /* Add / remove the active button class */ jQuery(document).ready(function() { jQuery('.sm-btn-right').click(function() { jQuery('.sm-btn-right').addClass('active-button'); jQuery('.sm-btn-left').removeClass('active-button'); }); jQuery('.sm-btn-left').click(function() { jQuery('.sm-btn-left').addClass('active-button'); jQuery('.sm-btn-right').removeClass('active-button'); }); }); 
 .sm-btn-left { color: red; } .sm-btn-right { color: blue; } .active-button { background-color: #ddd; } 
  
Map
List

Ensuite, j’ai réalisé que j’avais besoin d’une fonctionnalité similaire pour certains autres boutons, alors j’ai décidé de la transformer en une fonction réutilisable que je pourrais appeler en cas de besoin. Mais lorsque je fais que la fonction cesse de fonctionner, la classe de active-button ne change pas.

Voici ma tentative (brisée) de le séparer dans sa propre fonction réutilisable.

 /* Add / remove class */ function bgAddRemoveClass(elem1, elem2, theClassNoDot) { jQuery('elem1').click(function() { jQuery('elem1').addClass('theClassNoDot'); jQuery('elem2').removeClass('theClassNoDot'); }); jQuery('elem2').click(function() { jQuery('elem2').addClass('theClassNoDot'); jQuery('elem1').removeClass('theClassNoDot'); }); } /* Invoke the function */ jQuery(document).ready(function() { bgAddRemoveClass('.sm-btn-left', '.sm-btn-right', 'active-button'); }); 
 .sm-btn-left { color: red; } .sm-btn-right { color: blue; } .active-button { background-color: #ddd; } 
  
Map
List

Qu’est-ce que je fais mal?