我为侧边栏创建了一个功能,单击该功能可将第一个href向下滑动,然后将非此功能的所有滑动上侧。在我需要使用“ onclick”调用该函数之前,此方法运行良好,这意味着$(this)不能正常工作,因为它只能调用(this)。我正在使用tagbuilder,因此只能调用一个唯一的事件侦听器。
JS
$(".foo > a").each(function () {
$(this).click(function () {
$(this).siblings(".sibling").slideToggle();
$(this).toggleClass("active");
$(".foo > a").not(this).siblings(".sibling").slideUp();
$(".foo > a").not(this).removeClass("active");
});
});
C#
a.MergeAttribute("onclick", "Click.call(this)");
这不是针对侧边栏,也不是向上滑动
答案 0 :(得分:0)
要不将CSS类添加到当前目标,只需删除当前CSS并添加到其同级。
$(".foo > a").click(function () {
$(this)
.removeClass('active')
.siblings()
.addClass('active');
});
.foo {
display: flex;
}
.foo a {
border: 1px solid black;
color: black;
padding: 15px;
margin: 15px;
text-decoration: none;
}
.foo a.active {
background: black;
color: white;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="foo">
<a href="#">Link1</a>
<a href="#">Link2</a>
<a href="#">Link3</a>
</div>