диалоговые окна jQuery ui не перетаскиваются и не изменяются после appendTo?
Я реализую sticky notes с помощью диалоговых окон пользовательского интерфейса jquery. При нажатии кнопки открывается большое полноэкранное диалоговое окно пользовательского интерфейса, а внутри этого большого диалогового окна находится кнопка для добавления небольших диалоговых окон (заметок).
HTML :
<body>
<button id="opener">open the dialog</button>
<div id="outter-dialog" title="Notes">
<button id = "add-note">Add Note</button>
</div>
JS:
$( "#outter-dialog" ).dialog({
autoOpen: false,
title: "Success Message",
width: $(window).width(),
height: $(window).height(),
modal: false,
buttons: {
Cancel: function() {
$(this).dialog('close');
}
}
});
$("#opener").click(function(){
$( "#outter-dialog" ).dialog('open');
});
var prevelement;
$("#add-note").click(function () {
var dynamicDialog = $('<div id="MyDialog"> <textarea>Hello</textarea> </div>');
var pos;
if (prevelement) {
pos = {
my: "left",
at: "bottom",
of: prevelement
}
}
dynamicDialog.dialog({
title: "Note",
modal: false,
appendTo: "#outter-dialog",
buttons: [{
text: "Save",
click: function () {}
}],
position: pos
});
prevelement = dynamicDialog
});
Теперь у меня есть проблема, когда я добавляю appendTo: "#outter-dialog" в мои динамические небольшие диалоговые окна (заметки):
После добавления их в диалоговое окно outter они больше не изменяются и не перетаскиваются.
Я добавил их к outter dilaog box так, что при открытии/закрытии диалогового окна outter внутренние заметки отображаются/скрыты.
Есть идеи, почему они не перетаскиваются и не изменяются??
2 ответов:
Вот как вы можете преодолеть эту проблему, демо Просто установите
dragableиresizableвfalseи вызовите их отдельно, как только вы создадите диалоговое окно. и не забудьте клонировать динамический элемент и использовать динамический идентификатор для этого элементаvar elementCount = 0; $("#add-note").click(function () { var dynamicDialog = $('<div> <textarea>Hello</textarea> </div>'); var pos = { my: "left", at: "bottom", of: "#dialog" + elementCount } var dialogId = "dialog" + elementCount; dynamicDialog.clone(true).attr("id", dialogId).dialog({ title: "Note", modal: false, appendTo: "#outter-dialog", draggable: false, resizable: false, buttons: [{ text: "Save", click: function () {} }], position: pos }); $("#" + dialogId).parent().draggable().resizable(); elementCount++; });
$( "#outter-dialog" ).dialog({ autoOpen: false, title: "Success Message", width: $(window).width(), height: $(window).height(), modal: false, resizable: true, draggable: true, buttons: { Cancel: function() { $(this).dialog('close'); } } });
Comments