jQuery不添加或删除类

时间:2012-05-28 13:40:44

标签: javascript jquery

为什么我的jQuery代码没有添加,后来删除了加载类?

$('#crop').click(function (ev) {
    ev.preventDefault()
    $.post('frame.php?action=crop', dimensions, function (json) {
        $('body').addClass('loading')
        picture()
    }, 'json')
    $('body').removeClass('loading')
})

Chrome和Firebug控制台为空,因此不应出现任何错误。 jQuery版本是1.4.4

2 个答案:

答案 0 :(得分:4)

它的作用是删除,然后再添加该类。

您正在将回调中的类添加到$.post(),这将在之后后续删除该类时发生。如果您交换这些行(在$.post()调用后添加并在回调中删除),那么它将更接近您想要的内容。

答案 1 :(得分:2)

我认为你和订单混在一起......

$('#crop').click(function (ev) {
    ev.preventDefault()
    $.post('frame.php?action=crop', dimensions, function (json) {
        $('body').addClass('loading') // here you should remove the loading!
        picture()
    }, 'json')
    $('body').removeClass('loading') // here you should add the loading!
})

应该是:

$('#crop').click(function (ev) {
    ev.preventDefault();
    $.post('frame.php?action=crop', dimensions, function (json) {
        $('body').removeClass('loading');
        picture();
    }, 'json');
    $('body').addClass('loading');
});

请注意,虽然使用分号(;)终止您的行并非强制性,但这是最佳做法。