Esto es lo que tengo en este momento:

    $('.slick-slide div').click(function() {
    var thisClass = $(this).attr('class');

    if ($('.experts-copy-block div').hasClass(thisClass)) {
        $('.experts-copy-block div').addClass('active').siblings().removeClass('active');
    }

});

Y este es el HTML:

<div class="slick-slide">
    <div class="alpha"></div>
    <div class="beta"></div>
    <div class="gamma"></div>
    <div class="delta"></div>
</div>
<div class="experts-copy-block">
    <div class="alpha"></div>
    <div class="beta"></div>
    <div class="gamma"></div>
    <div class="delta"></div>
</div>

Entonces, lo que quiero es que si se hace clic en .slick-slide .beta, entonces .experts-copy-block .beta activa la clase y si algún otro hermano ya tiene la clase activa, elimínela.

0
Michael Wells 10 dic. 2015 a las 18:17

3 respuestas

La mejor respuesta
$('.slick-slide div').click(function() {
    var thisClass = $(this).attr('class');

    $('.experts-copy-block div.' + thisClass).addClass('active').siblings().removeClass('active');
});
1
Chet 10 dic. 2015 a las 15:20

Puedes usar algo como esto:

$(".slick-slide div").click(function () {
  // Remove all the active classes.
  $(".experts-copy-block div").removeClass("active");
  // Add an active class to the clicked element.
  $(".experts-copy-block").find($(this).attr("class")).addClass("active");
});

¿Esto funciona?

0
Praveen Kumar Purushothaman 10 dic. 2015 a las 15:21
$('.slick-slide div').click(function() {
   var thisClass = $(this).attr('class');

  $('.experts-copy-block div.active').removeClass('active');
  $('.experts-copy-block div.' + thisClass).addClass('active');

});

Sin embargo, sugeriría mover la 'clase' a un atributo de datos. Aunque el código tendrá que cambiar un poco.

0
johnnycreaks 10 dic. 2015 a las 15:22