Slick-Slider 下一个和上一个按钮未激活

Slick-Slider next and previous button not activated

我有一个自定义的光滑滑块画廊,当您单击画廊图像时它会被激活。但是上一个和下一个箭头不起作用。当您 select 他们时,图库将恢复为原始图像。我试过使用 z-index: 100; 但它似乎不起作用。我是 JavaScript 的新手,所以我认为这与整个 div 是可点击的事实有关。

这里是 JS Fiddle 似乎有箭头,但不是我在下面插入的代码。

$(function() {
  $(".div2").hide();

  $(".div1").on("click", function() {
    $(".div2").hide();
    $(".div1").show();

    $(this).hide();
    $(this).next().show();

  });

  $(".div2").on("click", function() {
    $(this).hide();
    $(this).prev().show();
  });
});
$('.carousel-one').slick({
  arrows: true,
  infinite: true,
  speed: 500,
  slidesToShow: 1,
  centerMode: true,
  variableWidth: true,
  autoplay: true,
  autoplaySpeed: 2000
});
.slick-next {
  right: 20px;
  /* background-color: black; */
  z-index: 100;
}

.slick-prev {
  left: 20px;
  /* background-color: black; */
  z-index: 100;
}
<link href="https://cdn.jsdelivr.net/jquery.slick/1.3.15/slick.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.slick/1.3.15/slick.min.js"></script>
<div class="div1"><img src="http://lorempixel.com/600/200" alt="Image three"></div>
<div class="div2">
  <div class="carousel-one">
    <div><img src="http://lorempixel.com/400/200" alt="Image three"></div>
    <div><img src="http://lorempixel.com/400/200" alt="Image one"></div>
    <div><img src="http://lorempixel.com/300/200" alt="Image two"></div>
    <div><img src="http://lorempixel.com/320/200" alt="Image four"></div>
    <div><img src="http://lorempixel.com/400/200" alt="Image five"></div>
    <div><img src="http://lorempixel.com/200/200" alt="Image seven"></div>
    <div><img src="http://lorempixel.com/300/200" alt="Image six"></div>
  </div>
</div>

<div class="div1"><img src="http://lorempixel.com/600/200" alt="Image three"></div>
<div class="div2">
  <div class="carousel-one">
    <div><img src="http://lorempixel.com/400/200" alt="Image three"></div>
    <div><img src="http://lorempixel.com/400/200" alt="Image one"></div>
    <div><img src="http://lorempixel.com/300/200" alt="Image two"></div>
    <div><img src="http://lorempixel.com/320/200" alt="Image four"></div>
    <div><img src="http://lorempixel.com/400/200" alt="Image five"></div>
    <div><img src="http://lorempixel.com/200/200" alt="Image seven"></div>
    <div><img src="http://lorempixel.com/300/200" alt="Image six"></div>
  </div>
</div>

<div class="div1"><img src="http://lorempixel.com/600/200" alt="Image three"></div>
<div class="div2">
  <div class="carousel-one">
    <div><img src="http://lorempixel.com/400/200" alt="Image three"></div>
    <div><img src="http://lorempixel.com/400/200" alt="Image one"></div>
    <div><img src="http://lorempixel.com/300/200" alt="Image two"></div>
    <div><img src="http://lorempixel.com/320/200" alt="Image four"></div>
    <div><img src="http://lorempixel.com/400/200" alt="Image five"></div>
    <div><img src="http://lorempixel.com/200/200" alt="Image seven"></div>
    <div><img src="http://lorempixel.com/300/200" alt="Image six"></div>
  </div>
</div>

按钮单击事件冒泡,div2 单击处理程序捕获它。一种处理方法是如果单击的元素是按钮,则退出该函数。

这是 javascript 中的一种方法。我还添加了一些 console.log 供您在控制台中查看并试用。尝试在 jquery 中执行此操作,使用 class 选择器等

  $(".div2").on("click", function(e) {
    console.log("div2 click event:", event); // js event obj
    console.log("div2 click event:", e); // jQuery event object
    if (event.target.nodeName == "BUTTON") return; // exit if button
    $(this).hide();
    $(this).prev().show();
  });

工作代码:http://jsfiddle.net/jje5a1dr/5/