0

我希望用户在单击 mailto 链接时通过 jQuery UI 对话框确认他或她接受或拒绝某些条款。当我使用以下代码时,对话框会短暂出现,但随后会在页面重定向到默认电子邮件程序时自动关闭。

jQuery:

$(function() {
    .html('Do you accept these terms?')
    .dialog({
        autoOpen: false,
        title: 'Disclaimer',
        resizable: false,
        width: 500,
        modal: true,
        buttons:            
            {
    "Accept": function() {
      $( this ).dialog( "close" );},
    "Reject": function() {
      $( this ).dialog( "close" ); }
 }
 });

$('.email-address').click(function() {
    $dialog.dialog('open');

});
});

HTML:

<a class="email-address" href="mailto:'info@example.com">info@example.com</a>

关于在关闭对话框之前要求响应的最佳方式的任何建议?

4

2 回答 2

1

我会从 html 中删除 href="mailto",将其设置为 # 并从您的函数内部运行 mailto。

HTML:

<a class="email-address" href="#">info@example.com</a>

JS:

$(function() {
  .html('Do you accept these terms?')
  .dialog({
    autoOpen: false,
    title: 'Disclaimer',
    resizable: false,
    width: 500,
    modal: true,
    buttons:{
      "Accept": function() {
        $( this ).dialog( "close" );
        window.location.href = "mailto:info@example.com";
      },
      "Reject": function() {
        $( this ).dialog( "close" ); }
      }
   });

  $('.email-address').click(function() {
    $dialog.dialog('open');

  });
});
于 2013-06-28T03:28:52.050 回答
1

这是因为您单击的链接的默认操作,您需要阻止链接的默认操作,并且在接受时您需要将用户重定向到页面

于 2013-06-28T03:30:42.883 回答