javascript - jQuery - 在特定页面上隐藏元素

标签 javascript jquery html css

我有这个用 <ul> 模拟的向导步骤表单通过重叠非事件列表元素 <li>具有绝对定位的元素。

除了我想在某个步骤中隐藏下一步上一步 按钮外,向导表单按预期工作。

这是我在 jQuery 中的逻辑,但它没有任何用处。

if (index === 0) {
    $('#prev').addClass(invisible);
    $('#prev').removeClass(visible);
} else if (index === 1) {
    $('#prev').addClass(visible);
    $('#prev').removeClass(invisible);
} else {
   $('#next').addClass(invisible);
}

为了获取索引值,我使用了 eq()链接在当前步骤元素上,如下所示

var current;
var index = 0; 

$(function () {
   current = $('.pg-wrapper').find('.current');

$('#next').on('click', function() {
  if (current.next().length===0) return;

   current.next().addClass('current').show();
   current.removeClass('current').hide();

   navstep.next().addClass('active');
   navstep.removeClass('active');

   current = current.next();
   navstep = navstep.next();
   index = current.eq();
});

我试图尽可能地隔离它,但我的完整代码会给你一个更好的主意。 如果您愿意提供帮助,请查看我的 JS BIN

最佳答案

有几个问题

  1. 你使用了 .eq 而不是索引
  2. 你缺少类名周围的引号
  3. 您的导航逻辑有缺陷
  4. 不需要有两个类来改变可见性

我相信以下是一个改进,但如果您有任何问题,请告诉我。

我在 prev/next 中添加了 class="navBut"并重写了可见性的设置

Live Demo

var current;
var navstep;

$(function () {
  current = $('.pg-wrapper').find('.current');
  navstep=$('.nav-step').find('.active');
  $('.pg-wrapper div').not(current).hide();
  setBut(current);

  $('.navBut').on('click', function() {
    var next = this.id=="next";  
    if (next) { 
      if (current.next().length===0) return;
      current.next().addClass('current').show();
      navstep.next().addClass('active');
    }    
    else {
      if (current.prev().length===0) return;
      current.prev().addClass('current').show();
      navstep.prev().addClass('active');
    }  
    current.removeClass('current').hide();
    navstep.removeClass('active');
    current = (next)?current.next():current.prev();
    navstep = (next)?navstep.next():navstep.prev();
    setBut(current);
  });
});

function setBut(current) {
  var index=current.index();
  var max = current.parent().children().length-1;
  $('#prev').toggleClass("invisible",index<1);
  $('#next').toggleClass("invisible",index>=max);
}

关于javascript - jQuery - 在特定页面上隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18996943/

相关文章:

jquery - 如何访问动态生成的提交按钮 ID?

jquery - 粘性页脚高度问题

html - 从 npm 脚本在浏览器中打开 html 文件

javascript - 在 HTML5/Javascript 移动应用程序中下载 PDF 文件

javascript - 寻找数组的众数? JavaScript

javascript - 使用 Safari Web 检查器调试内存泄漏?

javascript - Google 脚本 POST 方法与 poloniex api 调用的 JAVA 不匹配

javascript - 图像作为复选框

javascript - 带有可点击超链接的可编辑 DIV

javascript - 图像缩放按钮 - 不知道如何