我有一个奇怪的怪癖似乎只发生在使用AngularJS的ie9中。
我有一个带有ng-repeat的重复按钮和一个带有ng-click的功能。单击该按钮时,该功能似乎会多次运行并在按钮之间切换。我试图删除尽可能多的冲突代码并将其削减到这些部分。
我得出结论,它只发生在add remove class if else语句中,当删除它时,它似乎工作正常。
这是我的代码:
<div class="row multiple-question">
<button
data-num="{{item.QuestionNo}}"
class="ansbtn" data-ans="{{ answer.AnswerValue }}"
ng-click="triggerNext(item.QuestionNo, answer.AnswerValue)"
ng-repeat="answer 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');
}
};
答案 0 :(得分:0)
一种可能的解决方案可能是使用div或span元素将按钮括起来,并使其具有ng-repeat,同时保持对每个按钮的点击。
答案 1 :(得分:0)
嘿刚刚发布我的解决方案,虽然如果我坚持使用ng-click仍然存在问题,如果我将按钮点击到文档,问题就会消失,这不是我理解的正确方法。但它奏效了。