不工作addClass

时间:2013-07-31 23:42:02

标签: jquery

我使用Datatables(jQuery插件),并且所有行都有许多按钮,可以进行一些工作(发送到服务器请求 - 编辑,删除等)。

我希望在点击其中一个底部之后,添加类名“禁用”,并在完成工作后删除此类。

但是没有添加“禁用”类。 但是,如果我删除$(this).removeClass('disabled');,按钮将与此课程一起使用!为什么?还是我当地的问题?

我有这个HTML

<a id='change-color' class='btn btn-danger'>Change Color</a>

这个JS代码

$(document).on('click', '#change-color', function(){
    $(this).addClass('disabled');
    var _this = this; // hmm.. can i do it without this spick?..

    $.get('/', function(text){
        if($(_this).hasClass('btn-danger')){
            $(_this).removeClass('btn-danger').addClass('btn-success');
        } else {
            $(_this).removeClass('btn-success').addClass('btn-danger');
        }
    });
    $(this).removeClass('disabled');
});

LIVE ON JSFIDDLE

1 个答案:

答案 0 :(得分:1)

您在添加课程后立即删除课程;在异步回调执行之前。而是删除回调中的类:

$(document).on('click', '#change-color', function(){
    $(this).addClass('disabled');
    var _this = this; // hmm.. can i do it wihout this stafff?..

    $.get('/', function(text){
        if($(_this).hasClass('btn-danger')){
            $(_this).removeClass('btn-danger').addClass('btn-success');
        } else {
            $(_this).removeClass('btn-success').addClass('btn-danger');
        }
        // Removes the class AFTER the Ajax request completes
        $(this).removeClass('disabled'); 
    });
});