2011-01-21 13 views
1

行を削除してからダイアログを表示するようなコードがいくつかあります。jqueryテーブル行のヘルプを削除する

最初に削除IDをクリックすると、行がすぐに削除されます。 しかし、それ以降の行では、削除しようとすると、行を削除する前に複数のクリックが必要になることがあります。

ダイアログが表示され、行が表示されることがあります。

何が問題なのですか?

EDIT - dbは正しく更新されますが、行はまだ残ります。それは時々私は2回クリックしなければならないときにかなり不安定なときに削除します。

$(".delete-item").click(function() { 
      var itemId = $(this).attr("id").split('-')[1]; 
      var iType = $(this).attr("id").split('-')[0]; 

      $.post('/User/Delete/', { id: itemId, itemType: iType },function (json) { 
       if (json.success) { 

        console.log("#row-"+itemId); 
        $("#row-"+itemId).hide('slow', function(){ $(this).remove(); }); 

        //$("#dialog-success-delete").dialog("open"); 


       } else { 
        if(json.error=="unknown"){ 
         $("#dialog-unknown-error").dialog("open"); 
        } 
        if(json.error=="unauthenticated"){ 
         $("#dialog-unauthenticated").dialog("open"); 
        } 
       } 
      }); 
+1

残りのコードを表示する必要があります。私たちはあなたの削除ボタンのクリックハンドラを見ることができません。問題はどこにあるのでしょうか? – Jacob

+0

フルコードが追加されました – raklos

答えて

1

それは私がページ上で同じIDを持つ複数の行を有していた問題を判明しました! 私はタブを使用していましたが、テーブルは別々のタブにありました!

0

セレクタが正しいことを確認してください。 Chrome、Firefox + Firebug + Firequery、console.log($"#row-"+itemId).remove()がある場合)を使用してください。最も可能性の高い原因は、itemIdが期待どおりに行IDと整列していないことです。

1

これはタイミングの問題です。アニメーションのコールバックが別の行がクリックされる前に発生していない場合、itemIdは間違った項目を参照します。

に変更:

$("#row-"+itemId).hide('slow', function(){ $(this).remove(); }); 

モーダルだけ時々私は別の問題が同様に存在していると確信して、表示されているので。

post apiについて黙っ)jQuery.post(とリクエスト

を失敗 エラーコードを返すスクリプトも global .ajaxError()

と呼ばれていない限り、それは黙っ 失敗するのノートがあります

これは私の最高の推測ですが、成功したコールバックはサーバーエラーのために起こることはありません。

+0

行がまだそこにあっても常にモーダルが表示されます... btw more more above above – raklos

+0

@ raklos-私の更新された答えを見てください。 –

0

初心者は、非表示になった後に関数にダイアログを含めて、行が非表示になったときだけポップアップするようにしてください。次に、取得した後にthisセレクタを使用します。これは、最初にクリックされた行と同じ行で作業していることを確認します。最後に、コードにclickメソッドが表示されないので、正しく行っていることを確認してください。

このコードは、簡単なテストで私の作品:

$("#row-"+itemId).click(function() { 
    $(this).hide('slow', function() { 
    $(this).remove(); 
    $("#dialog-success-delete").dialog("open"); 
    }); 
}); 
関連する問題