2016-07-04 5 views
0

これは私の本当にすっきりしたギャラリーです。「?」に「クリック」イベントリスナーを追加しました。ボタン...しかし、ギャラリーがブレークポイントに当たると、滑らかなイベントリスナーが削除されます...どうすればそれを防ぐことができますか?Slickプラグインがイベントリスナーを削除しないようにするには

$('.qmark-btn').click(function(e) { 
     e.preventDefault(); 
     // var img = $(this); 
     alert('test'); 
}); 
$('.img-gallery').slick({ 
     slidesToShow: 6, 
     slidesToScroll: 3, 
     arrows: false, 
     rows: 3, 
     infinite: false, 

     responsive: [ 
      { 
       breakpoint: 1200, 
       settings: { 
        slidesToShow: 5, 
        slidesToScroll: 3, 
       } 
      }, 
      { 
       breakpoint: 992, 
       settings: { 
        slidesToShow: 4, 
        slidesToScroll: 3, 
       } 
      }, 
      { 
       breakpoint: 768, 
       settings: { 
        slidesToShow: 3, 
        slidesToScroll: 3, 
       } 
      }, 
      { 
       breakpoint: 600, 
       settings: { 
        slidesToShow: 2, 
        slidesToScroll: 1, 
       } 
      } 

     ] 
    }); 

enter image description here

+0

私はあなたの 'click'eventリスナーを削除している滑らかなプラグインだとは思わない。あなたの "?"ボタンがロード時に生成されるか、ホバーなどに動的に追加されますか? – TheWanderingMind

+0

は静的なボタンです。 – cabs

+0

奇妙なことに、問題を再現できました。あたかもボタンが動的に追加されたかのようにイベントをアタッチするようにしてください。 [デモ](https://jsfiddle.net/BishopBarber/89s5gf81/2/) – TheWanderingMind

答えて

2

私は同じ問題を経験してslick.js内cleanUpRows機能に小さな微調整して、それを修正しました。

Slick.prototype.cleanUpRows = function() { 
    var _ = this, originalSlides; 

    if(_.options.rows > 1) { 
     originalSlides = _.$slides.children().children().clone(true); 
     originalSlides.removeAttr('style'); 
     _.$slider.empty().append(originalSlides); 
    } 

}; 

「.clone(true)」を単に追加します。 イベントリスナーをoriginalSlidesにコピーします。

これは、レスキューブレイクが発生したときのSlickの問題を修正しました。

関連する問題