javascript - 单击重新加载脚本

标签 javascript jquery html css

我尝试向我的 slider 添加交互 How to add a class to previous div

脚本的第一部分负责改变类。如果你把当前类放到另一个div,它之前的div会得到.prv,current之后的div会得到.nxt

但是现在,当我将单击功能添加到按钮(下一个)以删除当前类时,classes .nxt 和 .prv 仍然存在,它们应该消失。请检查 fiddle :https://fiddle.jshell.net/df9ef0hf/12/

<div class="next">next</div>
<div class="previous">prev</div>

<div class="main-slider">

  <div  class="slide current"></div>
  <div class="slide "></div>
  <div class="slide  " ></div>
  <div class="slide "></div>
  <div class="slide "></div>

</div>

作为

$(".main-slider").ready(function(){
  $(".current").prev().addClass("prv");
  $(".current").next().addClass("nxt");
    if( ! $(".current + div").length ) $('.slide').first().addClass("nxt"); // current is last
  if( ! $(".current").prev().length ) $('.slide').last().addClass("prv") // current is firs
});




$('.next').click(function() {
    $('.current').removeClass('current');
});

更新/工作 fiddle https://fiddle.jshell.net/df9ef0hf/15/

最佳答案

您没有重新分配当前类,因此脚本不知道当前对象是什么。试试这个:

var update = function() {

$(".current").prev().addClass("prv");
  $(".current").next().addClass("nxt");
    if( ! $(".current + div").length ) $('.slide').first().addClass("nxt"); // current is last
  if( ! $(".current").prev().length ) $('.slide').last().addClass("prv") // current is firs

};

$(".main-slider").ready(function(){

  update();

});


$('.next').click(function() {

    $('.current').removeClass('current');
    $( ".nxt" ).addClass( "current" ).removeClass( "nxt" );

    update();

});

关于javascript - 单击重新加载脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47239827/

相关文章:

python - 如何从标签之间提取文本?

html - Wordpress anchor 链接调整固定标题的边距

javascript - 堆叠图像/图标链接

javascript - 文本框求和给出的总数不正确

javascript - 正则表达式分割字符串并检查字符串是否为类型

javascript - jquery Menu State使用父类

javascript - 如何使用 javascript 替换 <table> 中 <td> 上的文本?

javascript - 如何console.log大对象?

javascript - 为什么 bool 比较中有 3 个相等的符号?

jquery - Stacked Bar Flot 条形图通过工具提示显示每个系列中每个类别的值