Entonces, tengo un par de tarjetas que se clonarán y quiero agregar una clase cuando se hace clic dentro de esas tarjetas y reemplazarla cuando se hace clic afuera y quiero mantener una clase determinada llamada metadatos sin cambios.
mi violín https://jsfiddle.net/abdotamer3/s57jauxw/27/
$(".card").on("click", function (e) { $(this).removeClass("viewItemInactive"); $(this).addClass("viewItemActive"); }); $(document).on("click", function (e) { if ($(e.target).is(".card") === false) { $(".card").not(".MetaData").each(function() { $(this).removeClass("viewItemActive"); $(this).addClass("viewItemInactive"); }); } });Si lo entiendo correctamente, puede agregar estas 2 líneas al hacer clic
$(".card").removeClass('randomClass'); $(this).addClass('randomClass');Entonces, esto agregará clase cuando haga clic en una tarjeta, y la eliminará cuando haga clic en otra tarjeta y también la agregará nuevamente a la que hizo clic.
Entonces, el clic sería así:
$(".card").on("click", function (e) { $(this).removeClass("viewItemInactive"); $(this).addClass("viewItemActive"); $(".card").removeClass('randomClass'); $(this).addClass('randomClass'); });