Javascript 删除类后Jquery addClass不工作

Javascript 删除类后Jquery addClass不工作,javascript,jquery,Javascript,Jquery,这是JQuery滑块的下一个幻灯片按钮的代码 function sliderNext() { var sliderItemsCount=$('#usersToolsSlider li').length; if($('.show').last().index()>=(sliderItemsCount-1)){ $('#usersToolsSlider li:first').addClass('show'); } else { $('.show').next('li

这是JQuery滑块的下一个幻灯片按钮的代码

function sliderNext() {
  var sliderItemsCount=$('#usersToolsSlider li').length;
  if($('.show').last().index()>=(sliderItemsCount-1)){
    $('#usersToolsSlider li:first').addClass('show');
  } else {
    $('.show').next('li').addClass('show');
  }
  $('.show').first().removeClass('show');}
在我删除类之后،这行

$('#usersToolsSlider li:first').addClass('show');

当您从最后一个元素移动到第一个元素时,它不起作用,此行:

$('.show').first().removeClass('show');
正在从之前添加的第一个元素中删除“show”类

清洁和工作版本:

function sliderNext() {
    var sliderItemsCount = $('#usersToolsSlider li').length;
    var isLastElement = ($('.show').last().index()>=(sliderItemsCount-1));
    if (isLastElement) {
        nextVisibleElement = $('#usersToolsSlider li:first');
    } else {
        nextVisibleElement = $('.show').next('li');
    }

    $('.show').removeClass('show');
    nextVisibleElement.addClass('show');
}

尝试改用jQuery的
.hide()
.show()
,和
.is(':visible')
。这将防止需要打开和关闭类

function sliderNext() {    
  //hide the current visible slider and keep it for comparison
  const previousVisible = $('#usersToolsSlider li:visible').hide();

  if(previousVisible[0] == $('#usersToolsSlider li:last')[0]) {
    //If the last slider was visible, show the first slider
    $('#usersToolsSlider li:first').show();
  } else {
    //Else show the next slider
    previousVisible.next().show();
  }
}
JSFiddle

目前还不清楚您的问题是什么。你说的删除类的那一行实际上是添加的,而不是删除的。我忘了在我的文本中加上,为什么有3个show(),而hide()在函数之外?Ó_242;@raul.vila op的示例不应该是这一行:$('.show').first().removeClass('show');被…取代。。。hide()而不是…show()?由于$('#userstoolslider li:first').show(),从最后一个到第一个的转换(如操作代码中)仍然失败;将显示第一个选项,并且第一个选项将由$('#usersToolslider li:visible:first').hide()隐藏;我想我现在更了解这个任务了。。。更新。