jQuery UI对话框:如何检索调用它的位置

时间:2013-04-29 06:37:42

标签: jquery jquery-ui

首先,我为我的英语道歉; - )

我有<TABLE>,每个<TR><TD>是指向文件的指针。我添加了一个链接来调用将删除所选文件的PHP模块。我选择使用jQUery UI对话框来确认删除,但是我在拦截被点击的元素以将HREF值传递给将调用PHP模块的document.location.href时遇到了麻烦。

这只是HTML的一小部分(只有一行,每个<TR>的HREF值不同):

    <tr class="riga">
        <td>
           <?php echo $xName; ?>
        </td>
        <td class="TD20">
           <span class="file-remove">
              <a href=<?php echo "del.php?&op=delfile&i=$xId&f=$xFsname"; ?> >
                 <span class="ui-icon ui-icon-closethick" title="Delete file"></span>
              </a>
           </span>
        </td>
    </tr>
...

<div id="confirm-delete-file" title="Conferma rimozione FILE">
  <p><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>Confermi la rimozione definitiva del file?</p>
</div>

这是jQuery函数

$(function() {
    $( "#confirm-delete-file" ).dialog({
      resizable: false,
      height:140,
      modal: true,
      autoOpen:false,
      buttons: {
        "Elimina": function() {
          $( this ).dialog( "close" );
          window.location.href = document.activeElement.href;
        },
        "Annulla": function() {
          $( this ).dialog( "close" );
          return false;
        }
      }
    });
    $(".file-remove a").click(function(e) {
        e.preventDefault();
        $('#confirm-delete-file').dialog('open');
    });
});

使用Mozilla Firefox可以使用,但如果使用Chrome或Safari则不行。我想document.activeElement.href不是检索被点击的href属性的正确方法...

有什么想法吗?

谢谢!

P.S。 jQuery UI 1.10.2和jQuery 1.8.3

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么问题在于访问点击锚标记的href。如果是,则声明一个可以保留href点击a标记的全局变量,然后在 Elimina 函数中使用它。

  var urlToHit = ""; 
  $( "#confirm-delete-file" ).dialog({
      resizable: false,
      height:140,
      modal: true,
      autoOpen:false,
      buttons: {
        "Elimina": function() {
          $( this ).dialog( "close" );
           alert(urlToHit);
           window.location.href = urlToHit;
        },
        "Annulla": function() {
          $( this ).dialog( "close" );
          return false;
        }
      }
    });
    $(".file-remove a").click(function(e) {
        e.preventDefault();
        urlToHit = $(this).attr("href");
        $('#confirm-delete-file').dialog('open');
    });

此处urlToHit可在您的功能中访问,您可以在没有任何问题的情况下重定向到该位置。