0

jQueryとクラスの追加と削除で奇妙な問題が発生しています。私はjsonリクエストの成功を確認しようとしています。特定のハイパーリンクについては、特定のcssプロパティを呼び出して追加/削除する必要がaddClassあります。removeClassクリックすると動作しませんが、cssクラスを個別に試してみると正常に動作します。ここに欠けているものはありますか?入力ありがとうございます。

$(document).ready(function() {
    $('.add_link').bind("click", function(e) {
        $.getJSON("/add/", function(json) {
            if (json.SUCCESS != null) {
                $(this).removeClass('blue_button_link').addClass('gray_out_button_link');
            }
        });
    });
});
4

2 に答える 2

2
$(document).ready(function() {
    $('.add_link').bind("click", function(e) {
        // cache it in a local variable.
        var $this = $(this);
        $.getJSON("/add/", function(json) {
            if (json.SUCCESS != null) {
                $this.removeClass('blue_button_link').addClass('gray_out_button_link');
            }
        });
    });
});
于 2012-07-31T02:06:42.923 に答える
1

イベントハンドラーには別のコンテキストがあるため、希望どおりに使用することはできませthisん。試す:

$(document).ready(function() {
    var link = $('.add_link');

    link.bind("click", function(e) {
        $.getJSON("/add/", function (json) {
            if (json.SUCCESS != null) {
                link.removeClass('blue_button_link').addClass('gray_out_button_link');
            }
        });
    });
});

または:

$(document).ready(function() {
    $('.add_link').bind("click", function(e) {
        var link = $(this);

        $.getJSON("/add/", function (json) {
            if (json.SUCCESS != null) {
                link.removeClass('blue_button_link').addClass('gray_out_button_link');
            }
        });
    });
});
于 2012-07-31T02:07:32.520 に答える