0

在这方面需要一些帮助。我正在单击一个删除图像,该图像存在于其中一行的一个单元格中。单击删除图像后,应该有一个模式确认框,要求用户确认行删除。好吧,该功能正在运行,但模式确认框不会在第一次单击删除图像时显示 - 但在第二次单击时显示。我在单击图像时写了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,让我知道它是否有效。

.live如果您使用的是 jQuery 1.4+,则不推荐使用,请参见此处。只需使用即可.click

于 2012-07-16T14:44:15.193 回答