Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript滑块添加/删除不带';不要取下第一张幻灯片_Javascript_Html - Fatal编程技术网

Javascript滑块添加/删除不带';不要取下第一张幻灯片

Javascript滑块添加/删除不带';不要取下第一张幻灯片,javascript,html,Javascript,Html,我在这个网站上浏览了几年,但直到现在才遇到了一个无法通过阅读其他人的答案来解决的问题 我觉得我的问题很容易克服,但由于某种原因,我在这方面遇到了障碍 我有一个“光滑”的滑块,可以添加和删除幻灯片,将来我希望能够使第一张幻灯片成为不可删除的上传表单。每次上传都会生成一张新幻灯片。删除该上传将删除该特定幻灯片 我的第一个问题是,我不太确定如何使第一张幻灯片不可删除……如果因为这个问题而挂断,意味着我将无法解决创建我上面提到的内容的问题,那么可能有人可以完成这项工作。(抱歉,如果这样说违反了规定) 这

我在这个网站上浏览了几年,但直到现在才遇到了一个无法通过阅读其他人的答案来解决的问题

我觉得我的问题很容易克服,但由于某种原因,我在这方面遇到了障碍

我有一个“光滑”的滑块,可以添加和删除幻灯片,将来我希望能够使第一张幻灯片成为不可删除的上传表单。每次上传都会生成一张新幻灯片。删除该上传将删除该特定幻灯片

我的第一个问题是,我不太确定如何使第一张幻灯片不可删除……如果因为这个问题而挂断,意味着我将无法解决创建我上面提到的内容的问题,那么可能有人可以完成这项工作。(抱歉,如果这样说违反了规定)

这是我的代码,希望它是您所需要的:

$(document).ready(function() {

  $('.add-remove').slick({
      dots: true,
      slidesToShow: 1,
      speed: 500,
      slidesToScroll: 1
  });
  var slideIndex = 1;
  $('.js-add-slide').on('click', function() {
      slideIndex++;
      $('.add-remove').slick('slickAdd','<div><h3>' + slideIndex + '</h3></div>');
  });

  $('.js-remove-slide').on('click', function() {
      $('.add-remove').slick('slickRemove', slideIndex - 1);
      if (slideIndex !== 0){
          slideIndex--;
      }
  });

});
$(文档).ready(函数(){
$('.add-remove').slick({
点:是的,
幻灯片放映:1,
速度:500,,
幻灯片滚动:1
});
var slideIndex=1;
$('.js添加幻灯片')。在('click',function()上{
slideIndex++;
$('.add-remove').slick('slickAdd',''+slideIndex+'');
});
$('.js删除幻灯片')。在('click',function()上{
$('.add-remove').slick('slickRemove',slideIndex-1);
如果(滑动索引!==0){
滑动索引--;
}
});
});

你所谓的幻灯片索引不是索引,而是幻灯片的数量。这意味着您总是删除最后一张幻灯片
slideCount
将是一个更合适的名称。要限制删除并仅删除活动图元,可以执行以下操作:

var slideCount = 0, slideSequence = 0;

$('.js-remove-slide').on('click', function() {
    var slideIndex = $('.slick-slide.slick-active').data('slick-index');
    if (slideIndex != 0){
        $('.add-remove').slick('slickRemove', slideIndex);
        slideCount--;
    }
});

$('.js-add-slide').on('click', function() {
    slideCount++;
    $('.add-remove').slick('slickAdd','<div><h3>' + slideSequence + '</h3></div>');
    slideSequence++;
});
var slideCount=0,slideSequence=0;
$('.js删除幻灯片')。在('click',function()上{
var slideIndex=$('.slick slide.slick active')。数据('slick-index');
如果(滑动索引!=0){
$('.add-remove').slick('slickRemove',slideIndex);
幻灯片计数--;
}
});
$('.js添加幻灯片')。在('click',function()上{
slideCount++;
$('.add-remove').slick('slickAdd',''+slideSequence+'');
slideSequence++;
});

add最终可能会添加一张新幻灯片,这取决于
slickAdd
的实现,它将始终获得下一个数字,即使删除了某些内容,以显示删除和创建的位置。

在这种情况下,我将检查切片的长度,并且仅在长度大于1时才会删除

像这样的东西应该有用

if ($(".slick-slide").length > 1) {
    // deletion code
}

这看起来是正确的-我没有注意到slideIndex是递增的,而不是SlideTanks的实际索引值。你可以得到他的工作,我没有时间;-)谢谢你的回答!这对你有用吗?因为对我来说,如果我创建多张幻灯片,它将不起作用。@maraca非常感谢您的帮助,但我仍然有删除多张幻灯片的问题。即使我将幻灯片设为活动幻灯片并点击“移除”,它也会保持在那里。如果你想知道我的意思,我用你的代码更新了原始问题中的链接。只需一次添加4或5张幻灯片,然后尝试转到每个幻灯片并将其删除。@OisinMc您有一些克隆的幻灯片,我不知道这是否正确。可能是删除无法正常工作,您可以通过放置警报(slideIndex)来检查是否获得了正确的删除索引