0

为什么我的 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

4

2 回答 2

4

它所做的是删除然后添加类。

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

于 2012-05-28T13:41:44.707 回答
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');
});

请注意,虽然用分号 ( ;) 终止您的行不是强制性的,但这是最佳实践。

于 2012-05-28T13:43:17.260 回答