Onclick不是这个

时间:2019-06-12 15:40:23

标签: c# jquery html

我为侧边栏创建了一个功能,单击该功能可将第一个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)");

这不是针对侧边栏,也不是向上滑动

1 个答案:

答案 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>