我有一個很大的部分形式。對於每一個部分,我想補充一個小按鈕「彈出對話框的」,這將是部分轉換爲點播一個對話框,然後(關閉對話框時),與新的輸入回返回到窗體。使用jQuery UI的對話框(「銷燬」)把元素放在錯誤的地方?
我使用jQuery UI的對話框()函數。彈出部分工作正常 - 子表單轉換成對話框。但是,當我對話(「銷燬」)子表單時,該元素出現,但在DOM文檔的末尾而不是原始位置。
這是一個對話框的 「功能」()?任何事情要做? 有沒有更好的方式來做到這一點W/O使用對話框()?
我有一個很大的部分形式。對於每一個部分,我想補充一個小按鈕「彈出對話框的」,這將是部分轉換爲點播一個對話框,然後(關閉對話框時),與新的輸入回返回到窗體。使用jQuery UI的對話框(「銷燬」)把元素放在錯誤的地方?
我使用jQuery UI的對話框()函數。彈出部分工作正常 - 子表單轉換成對話框。但是,當我對話(「銷燬」)子表單時,該元素出現,但在DOM文檔的末尾而不是原始位置。
這是一個對話框的 「功能」()?任何事情要做? 有沒有更好的方式來做到這一點W/O使用對話框()?
呀,這是一個'功能'......哈哈......一陣子跑回去了。這裏有幾個「gotchyas」,然後跟他們打交道(儘管是有效的,如果你打算有很多子窗體)的真正hackity方式:
在關閉對話框,下面的「克隆」的內容片斷該對話框重命名其id屬性,然後將更改後的內容附加到「sub_form_container」,從而每次用戶關閉對話框時都會生成一個全新的對話框/窗體。希望這可以幫助!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<link type="text/css" href="ui.css" rel="stylesheet" />
<script type="text/javascript" src="j.js"></script>
<script type="text/javascript" src='ui.js'></script>
<script type="text/javascript">
$(document).ready(function() {
newDialogs(2);
});
function newDialogs(idCounter) {
$('#d1').unbind().bind('click', function() {
$('#d'+ idCounter.toString()).dialog({close: function(event, ui){
var newSubForm = $('#d'+idCounter.toString()).clone();
idCounter += 1;
newSubForm.attr('id', 'd'+idCounter.toString()).attr('class', '').attr('style', '');
$('#sub_form_container').append(newSubForm);
newDialogs(idCounter);
$('ui-dialog').remove()
}
});
});
}
</script>
</head>
<body>
<h1>Element above</h1>
<div>
<div id='d1'>Activate dialog</div>
<div id='sub_form_container'>
<div id='d2'>Dialog content <input type='text' /></div>
</div>
</div>
<h1>Element below</h1>
</body>
</html>
也許別人添加一些代碼就很難說哪裏/爲什麼你的代碼可能會失敗
你可能只是不喜歡這樣或類似的
<input id="text" name="textname" type="text">
<input
type="button"
value="Pop me up"
onclick="$('#text').clone().dialog({
modal:true,
close: function(event, ui) {
$('#text').val(this.value);
}
});"
>
這爲我工作:
代碼示例:
$('a.popup-modal').click(function(e){
var $modal = $(this).closest('form').find('.modal').clone();
$modal.dialog({
autoOpen: true,
close: function(event, ui){
$(this).remove();
}
});
});
這是真棒。這比接受答案的方法更容易。這是一個非常糟糕的「功能」,他們應該真正解決這個問題。 – Milimetric 2011-08-17 20:32:05
非常有效。只要確保你不用'id's關閉'div's。 – geowa4 2011-12-14 13:59:19
你將如何處理帶ID的模態?一切工作,除非我沒有觸發重複關閉它。 – Mikhail 2014-02-01 07:24:57