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異なる必要がありますが、この場合、クラスは削除されません。stat2else

于 2013-09-19T09:43:42.827 に答える