javascript - JQuery hide() 在 fadeIn() 之后不起作用

标签 javascript jquery html

初始阶段我显示了前五个 li 然后单击更多类别我想显示下一个 5 li(带有 fadin() 效果),它将继续取决于类别计数

但我面临的问题是 hide() 在 fadeIn() 之后不起作用,它显示所有 li

我需要的是,当页面加载时,我需要显示前 5 个类别,然后单击更多类别将显示下 5 个类别(带有淡入效果)。

这里正在工作 fiddle

var items = jQuery("ul.main-category-grid > li");
var numItems = items.length;
$showPerClick = 5;
items.slice($showPerClick).hide();
jQuery('.dft-mre-btn > a').on('click', function(e){
  e.preventDefault();
  //   items.show();
  items.show().fadeOut().fadeIn(3000);// when use this line hide() not working
  $showPerClick = 5 + $showPerClick;
  items.slice($showPerClick).hide();
  show_btn_hide();
});

function show_btn_hide(){
  if($showPerClick >= numItems){
    jQuery('.dft-mre-btn').hide();
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="main-category-grid">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
  <li>10</li>
  <li>11</li>
  <li>12</li>
  <li>13</li>
</ul>
<div class="dft-mre-btn">
  <a href="">More Catgeories</a>
</div>

如果有任何帮助,我将不胜感激,提前致谢。

最佳答案

很难准确说出您想要什么,但如果您想一次淡入 5 个项目,请尝试如下:

var items = jQuery("ul.main-category-grid > li");
var numItems = items.length;
var $showPerClick = 5;
items.slice($showPerClick).hide();
jQuery('.dft-mre-btn > a').on('click', function (e) {
  e.preventDefault();

  var next = Math.min(numItems, 5 + $showPerClick);
  items.slice($showPerClick, next).fadeIn(3000);
  $showPerClick = next;

  show_btn_hide();
});

function show_btn_hide() {
  if ($showPerClick >= numItems) {
    jQuery('.dft-mre-btn').hide();
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="main-category-grid">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
  <li>10</li>
  <li>11</li>
  <li>12</li>
  <li>13</li>
</ul>
<div class="dft-mre-btn">
  <a href="">More Catgeories</a>
</div>

正在工作fiddle .

关于javascript - JQuery hide() 在 fadeIn() 之后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32778924/

相关文章:

javascript - Reactjs 中使用 JSX 的安全导航运算符

javascript - 如何在 Javascript 中找出给定属性在对象中的哪个位置

javascript - 在列中显示嵌套的 HTML ul 列表

javascript - 使用 JavaScript 发送 html 电子邮件

javascript - 究竟如何进行这个循环的进步呢? (兼容Internet Explorer 9,时间准确)

javascript - 如何让导航栏固定在顶部

javascript - jQuery 在循环内加载模板

javascript - 如何使用 javascript/jquery 循环遍历表?

html - 将 SVG 高度和宽度设置为其内部 <text> 节点的高度和宽度

javascript - jQuery AJAX 从不运行成功函数