jquery - 事件链接上的 CSS 样式会短暂工作然后停止

标签 jquery css html-lists

我有以下列表中的链接。单击它们时样式有效,但当页面加载到 href 位置时样式不显示

$('.sidebar-nav li').on('click', function() {
  $('li').removeClass('hello');
  $(this).addClass('hello');
});
.hello {
  border-bottom: 2px solid blue !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="sidebar-nav">
  <li><i class="icon-home"></i><a href="{{route('dashboard')}}">Home</a></li>
  <li><i class="icon-user"></i><a href=""> Profile</a></li>
  <li><i class="icon-tag"></i><a href="">Tags</a>
    <ul id="task-ul">
      <li><a style="color:#e62a76" href=""><i class="icon-circle"></i>Personal</a></li>
      <li><a style="color:#774898" href=""><i class="icon-circle"></i> Meetings</a></li>
      <li><a style="color:turquoise" href=""><i class="icon-circle"></i>Email/call</a></li>
      <li><a style="color:#fbb901" href=""><i class="icon-circle"></i> Follow up</a></li>
    </ul>
  </li>
  <li><i class="icon-calendar"></i><a href="">Events</a></li>
  <li><i class="icon-bar-chart"></i><a href="">Productivity</a></li>
  <li><i class="icon-signout"></i><a href="">Logout</a></li>
</ul>
</div>
<!--end of sidebar-->

最佳答案

通过单击链接,您将执行转到新 url 的操作,这将重新加载页面并因此重置所有样式。

在您的特定情况下,我会考虑这样的事情:

$('.sidebar-nav li a').on('click', function(e) {
  e.preventDefault();
  $('.sidebar-nav li a').removeClass('hello');
  $(this).addClass('hello');
});

通过将事件处理程序放在 a 标记上,您可以对事件运行 preventDefault(),这将阻止页面移动到新的 url 并重新加载.

如果您仍然希望更改 li 上的类而不是 a 标签,那么您可以做一些 DOM 遍历来访问 li 你想要的。像 $(this).parent('li').addClass() 这样的东西,我认为会做到。

关于jquery - 事件链接上的 CSS 样式会短暂工作然后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58420478/

相关文章:

html - 图片垂直居中修复代码

css - 如何对齐第二列(和更多列)中的元素,以便变化的值(增加的字符)不会推送

javascript - 只在第一页加载时工作,而不是在用户通过后退/前进时工作

javascript - 检查是否出现另存为对话框

javascript - 在第一个元素的处理结束之前,不要处理 forEach 循环中的下一个元素

jquery - 使用 translateX 100% 转换一个 div,然后将它推回到 View 中 x 个像素

javascript - 如何更改 Vuetify v-autocomplete 菜单边框半径样式?

css - 将生成的CSS类重用为mixins

html - 使文本区域的第一行与列表项中的元素符号位于同一位置

css - 无法使用图标从 UL 列表中删除元素符号点