为什么我需要两次单击两次才能使用angular8和jquery触发onclick事件

时间:2020-07-02 18:21:07

标签: javascript jquery onclick mouseevent angular8

为什么我需要两次单击两次才能触发angular8和jquery的点击事件

//。ts

addActive1() {
$(document).ready(function () {
  $('.arrow').on('click', function () {
    $(this).siblings('.box').toggleClass('active');
    $(this).toggleClass('arrow-clicked');
  });
});

}

//。html

<a (click)="addActive1()" class="arrow shadow-lg">

1 个答案:

答案 0 :(得分:0)

因此,经过几次搜索,我找到了适合我的理想答案。 首先让我解释一下我的情况,我有3个用于Mission,VIsion等的框,每个框都有固定的高度,如果单击箭头展开,它们必须适合其中100%的文本。 当我将其创建为静态页面时,它可以正常工作,但是当我使用ngFor进行循环时,它不起作用。

所以我找到了这个答案

$(document).on('click', '.arrow', function () {
      $(this).siblings('.box').toggleClass('active');
      $(this).toggleClass('arrow-clicked');
      console.log('Clicked!');
});

如您所见,问题在于我彼此之间使用了2个函数,因此触发了2次,因此我将 $('。arrow')切换为 $(document )。并且仅在点击时使用jQuery。