Javascript 删除类后Jquery addClass不工作
这是JQuery滑块的下一个幻灯片按钮的代码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
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()隐藏;我想我现在更了解这个任务了。。。更新。