slick.js出错:"未捕获的TypeError:无法读取属性'添加'为null"

P_M*_*P_M 20 jquery ruby-on-rails slider nested-forms slick.js

我使用光滑的js来获取图像的滑块视图.

这是我的代码.

<div class="slider_wrap add-remove">
    <%= f.fields_for :images do |image_form| %>
      <%#= render 'images_fields', :f => image_form %>
        <div>
          <%= image_tag image_form.object.picture.url,:class=>"drop_down_link even img_prev" %>
        </div>
        <div class="image_upload_div">
          <div class="image-upload">
            <label>
              <i class="fa fa-cloud-upload">
                <%= image_form.file_field :picture ,:'data-role'=>"none",:onchange=>"readURL(this);" , :accept => 'image/jpeg , image/png' %>
              </i>
            </label>
          </div>
        </div>
    <% end %>
    <%= f.link_to_add "Add a picture", :images ,:id=>"add_pic" ,:class=>"js-add-slide", :style=>"display: none;"%>
</div>

<script>
function silder(){
    slideIndex = 0;
      $('.add-remove').slick({
        slidesToShow: 2,
        slidesToScroll: 2
      });
      $('.js-add-slide').on('click', function() {
        $('.add-remove').slick('slickAdd');
      });

      $('.js-remove-slide').on('click', function() {
        $('.add-remove').slick('slickRemove');
      });
});
function readURL(input) {
  if (input.files && input.files[0]) {
    var reader = new FileReader();
    reader.onload = function (e) {
    $('.img_prev').last()
      .attr('src', e.target.result)
    };

    reader.readAsDataURL(input.files[0]);

    setTimeout(function(){
      $('#add_pic').trigger('click');
      silder();
    }, 100);
  }
}
</script>
Run Code Online (Sandbox Code Playgroud)

现在有了这个代码,我得到了滑块工作,但它不正确我得到错误:

未捕获的TypeError:无法读取null的属性"add"

Cee*_*man 74

这是因为caling init两次.这没有错误:

$(".slider").not('.slick-initialized').slick()
Run Code Online (Sandbox Code Playgroud)

此外,"silder"看起来像一个错字.

  • 非常适合我...感谢Cees。 (2认同)
  • 也为我工作。谢谢塞斯!! (2认同)