2011-12-04 77 views
1

我在jQuery中遇到了一些麻煩。當用戶點擊一個鏈接來刪除一些內容並提示他們確實想要刪除它時,我想要一個對話框出現。該對話框顯示正常,但我沒有看到用戶單擊「是」按鈕時獲取鏈接的URL的方法。我嘗試使用event.relatedTarget屬性來獲取標籤的url,但它是空的。有誰知道如何做到這一點?將JQuery對話框綁定到按鈕的事件

代碼

<div id="dialog" title="Delete Run"> 
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 0 0;"></span>Are you sure you want to delete that run?</p> 
</div> 
$(document).ready(function() { 
    $('#dialog').dialog({ 
     autoOpen: false, 
     width: 400, 
     modal: true, 
     draggable: false, 
     resizable: false, 
     buttons: { 
      "Yes": function(event) { 
       //Go to the url in $("a.delete") 
      }, 
      "No": function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 

    $("a.delete").click(function(){ 
     var url = $(this).attr("href"); 
     $('#dialog').dialog('open'); 
     return false; 
    }); 
}); 

回答

2
<div id="dialog" title="Delete Run"> 
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 0 0;"></span>Are you sure you want to delete that run?</p> 
</div> 
$(document).ready(function() { 
    $('#dialog').dialog({ 
     autoOpen: false, 
     width: 400, 
     modal: true, 
     draggable: false, 
     resizable: false, 
     buttons: { 
      "Yes": function(event) { 
       var url = $(this).data('url'); 
       window.location = url; 
      }, 
      "No": function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 

    $("a.delete").click(function(){ 
     $('#dialog').data('url', $(this).attr("href")); 
     $('#dialog').dialog('open'); 
     return false; 
    }); 
}); 

猜測一點點,因爲在你的代碼沒有元素a.delete? 使用jQuery的數據()通常比全局變量更好。

1

您可以在準備好的文檔開始處聲明url var,以便在任何函數中訪問該變量。 window.location.href = url;你會得到這樣的事情到底:

$(document).ready(function() { 
    var url; 

    $('#dialog').dialog({ 
     autoOpen: false, 
     width: 400, 
     modal: true, 
     draggable: false, 
     resizable: false, 
     buttons: { 
      "Yes": function(event) { 
       window.location.href = url; 
      }, 
      "No": function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 

    $("a.delete").click(function(){ 
     url = $(this).attr("href"); 
     $('#dialog').dialog('open'); 
     return false; 
    }); 
}); 
所以後(文件)。就緒,然後從刪除的功能,點擊,最後設置的窗口位置,以該變量,像這樣的VAR聲明先做 var url;

我已經在此設置了一個示例代碼:http://jsfiddle.net/dGETj/