javascript - 为什么 show() 只工作一瞬间?
问题描述
我试图让列表项出现在点击时。当我使用 hide() 方法时,它们开始隐藏,但是当我添加 show() 方法时,它只能工作大约一毫秒。不确定是不是因为它总是默认回到原始设置?在这种情况下,我基本上只想单击主列表<a>
Main List 并出现其他两个
$(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();
});
推荐阅读
- synchronization - Ada 同步——如何让代码更快?
- css - 为 ngx-bootstrap 模态添加或应用多个类的方法
- testing - RxJs Marble 使用 withLatestFrom 测试 concatMap
- java - 错误:找不到符号 BitmapTransformation/BitmapPool
- javascript - 如何使用 XSLT 从 url 显示 XML 数据
- java - Firebase setValue() 调用上 java.util.HashMap$HashIterator 的 StackOverflowError
- elm - Cmd.map 是将 Elm SPA 拆分为模块的正确方法吗?
- r - geom_bar 和 geom_linerange 之间的技术差异
- javascript - JSON对象的逆时间顺序
- mysql - AWS RDS MySQL innodb/btr_search_latch