我想创建多个实例jQuery Dialog UI。我还想创建具有相同Title的每个jQuery Dialog UI的多重克隆。
如果单击“打开对话框1”,则会打开“基本”对话框1。如果我再次点击Open Dialog 1,它应该生成具有相同标题的基本对话框1的克隆。
如果单击“打开对话框2”,则会打开“基本”对话框2。如果我再次点击Open Dialog 2,它应该生成具有相同标题的基本对话框2的克隆。
现在应该在屏幕上看到四个对话框。
示例:
1)同样在Windows中,我们可以多次打开“这台电脑” 2)文件浏览器多次。
$(function() {
$('.dialog').dialog({
autoOpen: false
});
$('.opener').click(function() {
var d = $('.dialog').clone().appendTo('body'),
tab = $(this).attr('alt') - 1;
d.dialog({
autoOpen: false,
close: function(e, ui) {
$(this).dialog('destroy').remove();
}
});
console.log(tab);
d.find('.dtabs').tabs({
active: tab
});
d.dialog('open');
$(this).data('id');
});
});
<div class="dialog" id="dialog1" title="Basic dialog 1">
</div>
<div class="dialog" id="dialog2" title="Basic dialog 2">
</div>
<div class="dialog" id="dialog3" title="Basic dialog 3">
</div>
<input value="Open Dialog 1" type="button" class="opener" data-id="#dialog1" />
<input value="Open Dialog 2" type="button" class="opener" data-id="#dialog2" />
<input value="Open Dialog 3" type="button" class="opener" data-id="#dialog3" />
答案 0 :(得分:1)
您可以使用data()
方法查找目标对话框,然后按如下所示进行克隆:
$(function() {
$('.opener').click(function() {
var targetSelector = $(this).data('id');
var $target = $(targetSelector);
var d = $target.clone().appendTo('body');
d.dialog({
close: function(e, ui) {
$(this).dialog('destroy').remove();
}
});
});
});
#dialog1,
#dialog2,
#dialog3 {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link href="//code.jquery.com/ui/1.11.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet" />
<div class="dialog" id="dialog1" title="Basic dialog 1"></div>
<div class="dialog" id="dialog2" title="Basic dialog 2"></div>
<div class="dialog" id="dialog3" title="Basic dialog 3"></div>
<input value="Open Dialog 1" type="button" class="opener" data-id="#dialog1" />
<input value="Open Dialog 2" type="button" class="opener" data-id="#dialog2" />
<input value="Open Dialog 3" type="button" class="opener" data-id="#dialog3" />