0

if (stat2 == stat)我的陈述有问题。尽管在控制台中我可以看到 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);

    }     
});
4

3 回答 3

0

你确定你有相同的 .number-field 元素吗?
在您的函数中,我们可以看到您获得的 .number-field 是您的事件目标 (.minus) 的壁橱。
但是当你测试时,我们不知道你得到了哪个 .number-field 元素。

于 2013-09-19T09:35:31.753 回答
0

以下是当前情况的摘要:

if stat == stat2
    alert
else
    if stat == stat2
        remove class

显然,stat必须不同于stat2才能到达else块,但在这种情况下,类不会被删除。

于 2013-09-19T09:43:42.827 回答
0

在将其更改为 newstat 后,我​​必须为 stat2 分配新值

更正了有问题的代码

于 2013-09-21T11:19:24.263 回答