我有一個按鈕,單擊時將一個外部頁面(同一個域)加載到div中,並將該div顯示爲一個jQuery UI對話框。重新打開加載的jQuery div對話框
<div id="Dialog_box"></div>
<script type="text/javascript">
$(function() {
$("#Dialog_box").dialog({
autoOpen: false,
modal: true,
width: 500,
height: 400,
title: "Dialog",
close: function(event, ui) {
$("#Dialog_box").html(""); // Ensure the page is no longer loaded
}
});
});
function openDialog() {
$(document).ready(function() {
$("#Dialog_box").load("dialog.php").dialog('open');
});
}
</script>
<button onclick="openDialog();">Open Dialog</button>
第一次單擊按鈕時,它打開罰款。關閉它後,它不會再回來。
首先,我證實,它實際上是在命中「X」
$("#Dialog_box").dialog({
...
close: function(event, ui) {
alert("Closed");
}
});
被關閉,並正在顯示的警報。然後,我用我的正常代碼嘗試,但在頁面
$("#Dialog_box").dialog('open');
沒有加載在這一點上,該對話框會啓閉正常,沒有任何問題。雖然我不認爲它應該的問題,我甚至試圖分離出負載和對話再次命令
function openDialog() {
$(document).ready(function() {
$("#Dialog_box").load("dialog.php");
$("#Dialog_box").dialog('open');
});
}
,該框將顯示第一次,但之後就不會再出現。
我的外部文件基本上是這樣的
<link type="text/css" href="path/to/style.css" rel="stylesheet" />
<script type="text/javascript" src="path/to/jquery.js"></script>
<script type="text/javascript" src="path/to/jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#Submit_button").click(function() {
// Do stuff with form data
// POST data without changing page
});
});
</script>
<form action=''>
// Input fields
<input type="button" id="Submit_button" />
</form>
只是爲了澄清,出現問題我是否張貼我的形式。
爲什麼加載(以及我的理解,卸載)頁面後,對話框不會重新打開?
太棒了!這工作完美。我假設對話框像iframe一樣,必須被視爲基本上獨立的實體。謝謝你清理那個。 – 2011-06-06 12:49:58