0

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

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

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

    <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 属性的正确方法...

有任何想法吗?

谢谢!

PS jQuery UI 1.10.2 和 jQuery 1.8.3

4

1 回答 1

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您可以在函数内部访问此处,并且您可以重定向到该位置而不会出现任何问题。

于 2013-04-29T06:58:02.577 回答