我对if (stat2 == stat)
声明有疑问。不会触发remove类
尽管在控制台中我可以看到stat2和stat具有相同的值。
解决了,我必须在更改后为stat2分配新值
$('.minus').on('click', function(e){
var ap = $('.add-points').data('ap');
var stat = $(this).closest('.stat').find('.number-field').data('stat');
var ap2 = $('.add-points').data('ap2');
var stat2 = $(this).closest('.stat').find('.number-field').data('stat2');
var newamount = ap2 + 1;
var newstat = stat2 - 1;
if (ap2 == ap || stat2 == stat ) {
alert("nie mozesz wiecej odjac");
} else {
e.preventDefault();
$(this).closest('.stat').find('.number-field').val(newstat);
$(this).closest('.stat').find('.number-field').data('stat2', newstat);
var stat2 = $(this).closest('.stat').find('.number-field').data('stat2');
if (stat2 == stat) {
$(this).closest('.stat').find('.number-field').removeClass('updated');
} else {
}
$('.unassigned').html(newamount);
$('.add-points').data('ap2', newamount);
}
});
答案 0 :(得分:0)
你确定你有相同的.number-field元素吗?
在你的函数中,我们可以看到你获得的.number-field是你的事件目标(.minus)的壁橱。
但是当你测试时,我们不知道你得到了哪个.number-field元素。
答案 1 :(得分:0)
以下是当前情景的摘要:
if stat == stat2
alert
else
if stat == stat2
remove class
显然,stat
必须与stat2
不同才能到达else
块,但在这种情况下,该类不会被删除。
答案 2 :(得分:0)
我必须在将其更改为newstat后为stat2分配新值
更正了有问题的代码