Javascript jQuery对话框的一个问题

Javascript jQuery对话框的一个问题,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,假设我有以下链接: <a onclick="confirmDelete()" href="delete.do&xyz">Delete user</a> 基本上,当点击链接时,它会检查用户是选择ok还是cancel,然后根据它执行操作 问题:我的平台上有数百个类似的链接,我们决定将所有javascript警报转到jquery对话框 我使用以下方法以某种方式覆盖警报: $(function(){ window.confirm = function(message)

假设我有以下链接:

<a onclick="confirmDelete()" href="delete.do&xyz">Delete user</a>
基本上,当点击链接时,它会检查用户是选择ok还是cancel,然后根据它执行操作

问题:我的平台上有数百个类似的链接,我们决定将所有javascript警报转到jquery对话框

我使用以下方法以某种方式覆盖警报:

$(function(){

window.confirm = function(message) {
          $('#overrideAlert').text(message).dialog({
              resizable: false,
              modal: true,
              buttons: {
              "Ok": function() {
              $( this ).dialog( "close" );

              },
              Cancel: function() {
              $( this ).dialog( "close" );

              }
            }
        });
  };
});
它工作正常,警报以jquery对话框的形式出现,但问题是因为无法从类似处理程序的对话框中返回某些内容,我不知道如何告诉字段中的按钮,用户选择了ok或cancel

基本上我不知道如何把它们联系在一起

请帮助

也许是这样:

"Ok": function() {
window.location=deleteURL;
$( this ).dialog( "close" );
},

因为使用相对url,所以可能会更复杂一些,但是可以使用window.location.protocol+window.location.port+window.location获取当前url。window.location.host+window.location.pathname

该问题是由于javascript异步特性造成的。当您使用jQuery时。你可以试试下面的方法

$('a[onclick="confirmDelete()"]')
      .attr('onclick','')
      .click( function(){

         var anch = this,
             message = "delete user?";

          $('#overrideAlert').text(message).dialog({
              resizable: false,
              modal: true,
              buttons: {
              "Ok": function() {
                   $( this ).dialog( "close" );
                   alert( "window.location=" + anch.href ); 
              },
              Cancel: function() {
              $( this ).dialog( "close" );

              }
            }
        });

        return false ;
});

我让jsfiddle

抱歉,忽略deleteURL。那只是我错误地放在那里的一个测试。问题是当confirmdelete被触发时,它不会等待对话框,并且返回false,因此对话框在这里变得有些无用
$('a[onclick="confirmDelete()"]')
      .attr('onclick','')
      .click( function(){

         var anch = this,
             message = "delete user?";

          $('#overrideAlert').text(message).dialog({
              resizable: false,
              modal: true,
              buttons: {
              "Ok": function() {
                   $( this ).dialog( "close" );
                   alert( "window.location=" + anch.href ); 
              },
              Cancel: function() {
              $( this ).dialog( "close" );

              }
            }
        });

        return false ;
});