为什么我需要两次单击两次才能触发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">
答案 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。