2

DataTablesプラグインとcolorboxプラグインを使用しています。.postが成功した場合、関数がtrueを返すようにしようとしています。

jQuery('.msg_delete').live('click', function () {
        var aData = oTable.fnGetData(nTr);
        if (deleteMessage(aData[6]) == true) {
            jQuery.colorbox.close();
            oTable.fnDeleteRow(nTr);
        }
        return false;
    });

function deleteMessage(messageID) {
    jQuery.post('ajax/msg_functions.asp', { action: 'delete', messageid: messageID }, function (data) {

    })
    .success(function () { return true; })
    .error(function () { alert("There was an error while trying to make this request;  If it persists please contact support"); })
    ;
}

現在、正しく投稿されています。メッセージが削除されているので、私はこれを知っています。だから私はそれがに行く.successと思います、そして私は今や真に戻ると思います。しかし、それはそうではないようです。

それは決して行きませんか、colorbox.close()誰かfnDeleteRow. が私がここで欠けているものを見ることができますか?

4

1 に答える 1

4

リターンは、に渡した無名関数である現在の関数からのみ戻ります$.ajax

あなたのコードは、例に基づいて、現在編成されているようには機能しません。

jQuery('.msg_delete').live('click', function() {
    var aData = oTable.fnGetData(nTr);
    deleteMessage(aData[6]).done(function(){
        jQuery.colorbox.close();
        oTable.fnDeleteRow(nTr);
    });
    return false;
});

function deleteMessage(messageID) {
    return jQuery.post('ajax/msg_functions.asp', {
        action: 'delete',
        messageid: messageID
    }).fail(function() {
        alert("There was an error while trying to make this request;  If it persists please contact support");
    });
}​

また、.success減価償却されます、使用.done

編集:

完全を期すために、変数を使用async:falseして保存しtrue、それを関数から返すこともできますが、コードの実行とユーザーの操作falseを一時停止するため、効率が低く、お勧めできません。async:false

于 2012-06-21T14:53:42.773 に答える