gpt4 book ai didi

javascript - 如果单击其他元素,是否删除类?

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:44 25 4
gpt4 key购买 nike

我想让当前事件的 li 元素在点击时获得一些适当的样式,并在点击其他 li 的元素时将其删除,

我就是靠这个来做的:

$('li').click(function() {
$(this).siblings().removeClass('current');
$(this).addClass('current');
});

如您所见,代码在 jsFiddle 上有效,example on JsFiddle ,除了它对我不起作用,我怀疑这与 Turbolinks 和 Jquery-turbolinks 有关吗? ,还是只是一些 CSS 问题?

CSS 文件按以下顺序排列:

.current /*I tried sidebar ul li.current but none happened.*/

.sidebar ul li

.sidebar ul li:hover

.sidebar ul li:active

.sidebar ul li a

a

a:hover

更新 #1:我尝试过的解决方案。

$('li').click(function() {
$(this).siblings().removeClass('current');
$(document).on('page:load',function(){
$('li').addClass('current');
});
});

这不是世界上最好的代码,这看起来很错误,但它只是徒劳的随机尝试。

这已经对整个 li 进行了更改(很明显),在页面加载后,这是一个半解决方案,除了我不知道如何获得点击的 li.

更新#2:Html 代码结构

    <body>

<nav class="navbar navbar-default hidden-lg hidden-md" role="navigation" style="margin-bottom:0;">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Brand</a>
</div>

<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="navbar navbar-nav navbar-right">
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</div><!-- /.navbar-collapse -->

</div><!-- /.container-fluid -->
</nav>
<!-- navbar -->

<div class="container-fluid">
<div class="window">
<div class="col-md-12">
<div class="row">
<div class="col-sm-2 hidden-sm hidden-xs" style="padding:0;">

<div class="span2" style="height:5%;">
<div class="topsidebar"></div>
</div>
<div class="span8" style="height:90%;">
<div class="sidebar">
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</div>
</div>
<div class="span2" style="height:5%;">
<div class="bottomsidebar"></div>
</div>
</div>
<div class="col-sm-10">
<div class="span2" style="height:5%;">
<div class="windowtop" id="u">
</div>
</div>
<div class="span8" style="height:90%;">
<div class="windowmain" style="overflow:auto;">
<%= bootstrap_flash %>
<%= yield %>
</div>
</div>
<div class="span2" style="height:5%;">
<div class="windowbottom"></div>
</div>
</div>
</div>
</div><!-- window -->
</div><!--container-fluid-->
</body>

我的目标是 sidebar div 中的第二个 li

最佳答案

尝试:

$(document).on("click",".sidebar li",function(){
if (!$(this).hasClass("current")) {
$("li.current").removeClass("current");
$(this).addClass("current");
}
});

这将检查您点击的 li 是否有当前类,如果没有则只触发其他语句

关于javascript - 如果单击其他元素,是否删除类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25084780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com