ng-click在ng-repeat IE9中多次触发
ng-click fires multiple times inside ng-repeat ie9
我有一个奇怪的怪癖,似乎只发生在 ie9 的 AngularJS 中。
我有一个带有 ng 重复的重复按钮和一个带有 ng-click 的功能。单击按钮时,函数似乎运行多次并在按钮之间移动。我试图删除尽可能多的冲突代码,并将其缩减到这些部分。
我得出的结论是,它只发生在 add remove 类上,如果 else 语句,当它被删除时,它似乎工作正常。
这是我的代码:
<div class="row multiple-question">
<button
data-num="{{item.QuestionNo}}"
class="answersbtn" data-ans="{{ answer.AnswerValue }}"
ng-click="triggerNext(item.QuestionNo, answer.AnswerValue)"
ng-repeat="answerswer in item.Answers">
<span class="letter num{{ $index + 1 }}"></span>
<h3>
<span class="circle right">
<span class="icon-checkmark"></span>
</span>
</h3>
<p>{{ answer.Answer }}</p>
<span class="arrow-right-button"></span>
</button>
</div>
函数代码在这里:
$scope.triggerNext = function(QuestionNo, AnswerValue) {
console.log('function run');
console.log(QuestionNo);
console.log(AnswerValue);
if($('.ansbtn[data-ans="'+AnswerValue+'"]').hasClass('active')) {
$('.ansbtn[data-ans="'+AnswerValue+'"]').removeClass('active');
} else {
$('.ansbtn[data-num="'+QuestionNo+'"]').removeClass('active');
$('.ansbtn[data-ans="'+AnswerValue+'"]').addClass('active');
}
};
一种可能的解决方案是用div 或 span 元素将按钮括起来,并让它为 ng 重复提供服务,保持对每个按钮的 ng 单击。
嘿,
只是发布我的解决方案,尽管如果我坚持使用 ng-click,问题仍然存在,但如果我将按钮单击绑定到文档,问题就会消失,这不是正确的方法,据我所知。但它奏效了。
相关文章:
- ng init中的表达式无法使用ng repeat
- Angular ng repeat order将多个字段作为一个字段
- 访问ng repeat中的第一个项目
- Angular js+ng repeat+字母数字索引不起作用
- 如何正确应用Angularjs ng repeat
- AngularJS Navigation (li ng-repeat, create header li), DOM
- 如何使用ng repeat中的选定输入更新我的对象
- 无法使用ng repeat检索动态创建的JSON对象的属性
- 使用 ng-repeat访问 ng 表单元素/值
- Toggle Switch在包含ng model和ng repeat之后不进行切换
- 如何在ng repeat angular js中使用$index
- 在Angularjs中,我如何使用ng repeat、ng model和ng click来动态更改内容
- ng repeat在ng repeat-过滤器不工作
- 在ng repeat中使用带有orderBy的方法
- Angular JS ng-repeat
- 在ng repeat中使ng disabled为true
- AngularJS:如何在ng repeat中使用$index
- 复选框无法正常使用ng repeat,AngularJs
- 如何避免在HTML中使用ng repeat对url名称进行硬编码
- ng-click在ng-repeat IE9中多次触发