我试图让列表项在单击时出现。当我使用hide()方法时,它们开始是隐藏的,但是当我添加show()方法时,它只能工作大约一毫秒。不确定是否因为它总是默认返回到原始设置?我基本上只想单击主列表<a>,在这种情况下是“主列表”,然后出现其他两个



$(function() {
  $('.sublist').hide();
  $(".mainlist").on('click', function() {
    $('.sublist').show();
  });
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<ul>
  <li>
    <a href="" class="mainlist">Main List</a>
    <li>
      <a href="" class="sublist">Sublist One</a>
    </li>
    <li>
      <a href="" class="sublist">Sublist Two</a>
    </li>
  </li>
</ul>

最佳答案

单击链接后,整个页面都会刷新。这意味着您的代码将再次运行:

$('.sublist').hide();


您应该做的是防止出现以下默认行为:

$(".mainlist").on('click', function(event) {
      $('.sublist').show();
      event.preventDefault();
    });

关于javascript - 为什么show()仅能瞬间使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52648872/

10-12 07:06