0

これについては助けが必要です。行の1つのセルの1つにある削除画像をクリックしています。削除画像をクリックすると、ユーザーに行の削除を確認するモーダル確認ボックスが表示されます。さて、機能は機能していますが、モーダル確認ボックスは、画像の削除を最初にクリックしても表示されませんが、2 回目のクリックで表示されます。画像がクリックされたときにconsole.logを書きました-画像がクリックされるたびにログに記録します-しかし、確認ボックスは最初は表示されません。確認ボックスのロジックがないと、画像の削除をクリックすると、最初のクリックでのみ行が削除されます。

コードは次のとおりです。

$('#example.display tbody tr td img#delete').live('click', function(){
  console.log("Delete clicked");

  var oTable = $('#example').dataTable();
  var nRow = $(this).closest("tr").get(0);
  var aData = oTable.fnGetData(nRow);

  ("#DeleteConfirmationModalWindow").html('<h6>'+'Are you sure you wish to delete order:'+'<br />'+aData[0]+'?'+'</h6>');
  $("#DeleteConfirmationModalWindow").dialog('open');

  $("#DeleteConfirmationModalWindow").dialog({
      title: "Delete Confirmation",
      autoOpen: false,
      dialogClass: "DeleteConfirmationModalWindow",
      closeOnEscape: false,
      draggable: false,
      width: 400,
      height: 200,
      modal: true,
      buttons: {
            "Yes, I'm sure": function() {
                $( this ).dialog( "close" );
                console.log("Delete");
                deleteDatabaseRow(oTable, nRow);    
                oTable.fnDeleteRow(nRow);
            },
            Cancel: function() {
                $( this ).dialog( "close" );
                console.log("No delete");
            }
        },
    resizable: false,
    open: function() {
              $('body').css('overflow','hidden');
          },
    close: function() {
              $('body').css('overflow','auto');
          }
    });                     
});

助けてください!ありがとう!

4

1 に答える 1

1

コードに誤りがあります。$("#DeleteConfirmationModalWindow").dialog('open');ダイアログを作成する前に呼び出しています。

まず、$("#DeleteConfirmationModalWindow").dialog('open');オプションを削除して、機能するautoOpen: falseかどうかをお知らせください。

.livejQuery 1.4+ を使用している場合は非推奨です。ここを参照してください。.click代わりに使用してください。

于 2012-07-16T14:44:15.193 に答える