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 に答える