0

私はajaxを使用してリクエストを送信するためのjqueryコードを持っています.しかし、成功した関数のキープレスが再び起動しない後、これは私のコードです

    $(".id_sort").bind('keypress',function(e){
    if (e.which == 13){
        var index_fix = [];
        var index_ori = [];
        for (i=0;i < $("tbody tr").length; i++){
            index_ori.push(i);
        }
        $(".id_sort").each(function(){
            index_fix.push(Number($(this).val())-1); 
        });
        if (JSON.stringify(index_fix) !== JSON.stringify(index_ori)){
            data = { key : 'sort', index : JSON.stringify(index_fix)};
            $.ajax({
                url : "/ajax/",
                data : data,
                type : "POST",
                cache : false,
                success : function (resp){
                        $(".data").html(resp);
                        // what should i do here..keypress enter doesn't work in second    time
                } 
            });     
        }
        else {
            alert("data sama coy");
        }
    }
});
4

2 に答える 2

0

ブラウザコンソールでJavaScriptエラーを確認してください。JavaScriptがエラーをスローし、最初のキーを押した後、このコードを実行していない可能性があります。

クラス.id_sortのいずれかのフィールドに空白以外の何かが含まれている場合、数値に変換するときにNaNを取得し、値をサーバーに渡すと、値としてNaNを受け入れるという問題はありますか?

于 2013-02-16T07:08:03.743 に答える
0

あなたがバインドしているdomノードがあなたの$(".data").html(resp);呼び出しによって置き換え/上書きされているように思えます。イベントへのバインドは、既に dom にあるノードでのみ機能します。

その場合は、dom を置き換えた後に成功のコールバックで再バインドするか、クリック イベントをより高いノードにバインドする必要があります。例えば:$(".data").on("keypress", ".id_sort", function() { ... });

于 2013-02-16T07:30:44.303 に答える