funivan написав:Наскілкьи я зрозумів у елементі #workspace має бути панель .panel Вона підргружається динамічно.
Якісь помилки показуються у консолі.
перш за все попробуйте
$(".panel").css({border:'1px solid red'})
результат напишіть сюди
Рамка додається, помилок нема. Попробую описати цю функцію детальніше.
В мене є метод на сервері який повертає массив в такому форматі.
Запит
GET /Home/GetUI HTTP/1.1
Host: localhost:6512
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
X-Requested-With: XMLHttpRequest
Referer: http://localhost:6512/
Cookie: vc=2; __gads=ID=6acab5fb8b4c2654:T=1354044980:S=ALNI_MbFyPpBWimXp1k1H5REsm5j7XAhPQ
Відповідь
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/8.0
X-AspNetMvc-Version: 4.0
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?YzpcdXNlcnNc0LDQtNC80LjQvdC40YHRgtGA0LDRgtC+0YBcZG9jdW1lbnRzXHZpc3VhbCBzdHVkaW8gMjAxMlxQcm9qZWN0c1xNdmNBcHBsaWNhdGlvbjFcTXZjQXBwbGljYXRpb24xXEhvbWVcR2V0VUk=?=
X-Powered-By: ASP.NET
Date: Sat, 08 Dec 2012 20:20:27 GMT
Content-Length: 8031
Тіло відповіді, тут під катом через те що малоінформативно а займає багато місця фактичноце це масив обєектів де data - це голий html. Причом уже з класами такими як ui-resizable.
{ id: id, name: name, data: data }
▼Прихований текст
[{"id":51,"data":"\n \u003ch2\u003eРобоча область\u003c/h2\u003e\n \u003cdiv style=\"position: absolute; top: 149px; left: 591px; width: 235px; height: 151px;\" class=\"panel ui-resizable ui-draggable ui-droppable\"\u003e\u003cdiv\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-e\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-s\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\"\u003e\u003c/div\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e\u003cdiv style=\"position: relative; left: 200px; top: 347px;\" class=\"input_wrapper ui-draggable\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e\u003cdiv style=\"position: relative; left: 510px; top: 218px;\" class=\"input_wrapper ui-draggable\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e","name":"with_attributes"},{"id":52,"data":"\n \u003ch2\u003eРобоча область\u003c/h2\u003e\n \u003cdiv style=\"left: 429px; top: 245px; position: absolute; width: 360px; height: 164px;\" class=\"panel ui-resizable ui-draggable ui-droppable\"\u003e\u003cdiv\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-e\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-s\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\"\u003e\u003c/div\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e\u003cdiv style=\"left: 540px; top: 33px;\" class=\"panel ui-resizable ui-draggable ui-droppable\"\u003e\u003cdiv\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-e\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-s\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\"\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"position: relative; left: 600px; top: 268px;\" class=\"input_wrapper ui-draggable\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e","name":"ква ква"},{"id":53,"data":"\n \u003ch2\u003eРобоча область\u003c/h2\u003e\n \u003cdiv style=\"position: relative; left: 2px; top: 52px;\" class=\"input_wrapper ui-draggable\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e\u003cdiv style=\"left: 567px; top: -52px;\" class=\"panel ui-resizable ui-draggable ui-droppable\"\u003e\u003cdiv\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-e\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-s\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\"\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"left: 465px; top: 373px; position: absolute; width: 302px; height: 195px;\" class=\"panel ui-resizable ui-draggable ui-droppable\"\u003e\u003cdiv\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-e\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-s\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\"\u003e\u003c/div\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e","name":"232"},{"id":54,"data":"\n \u003ch2\u003eРобоча область\u003c/h2\u003e\n \u003cdiv style=\"position: relative; left: 44px; top: 42px;\" class=\"input_wrapper ui-draggable\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e\u003cdiv style=\"height: 130px; left: 487px; top: -17px;\" class=\"panel ui-resizable ui-draggable ui-droppable\"\u003e\u003cdiv\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-e\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-s\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\"\u003e\u003c/div\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e","name":"4141241"},{"id":55,"data":"\n \u003ch2\u003eРобоча область\u003c/h2\u003e\n \u003cdiv style=\"position: relative; left: 602px; top: 51px;\" class=\"input_wrapper ui-draggable\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e\u003cdiv style=\"position: absolute; top: 210px; left: 397px; width: 331px; height: 238px;\" class=\"panel ui-resizable ui-draggable ui-droppable\"\u003e\u003cdiv\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-e\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-s\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\"\u003e\u003c/div\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e\u003cdiv style=\"left: 464px; top: 138px;\" class=\"panel ui-resizable ui-draggable ui-droppable\"\u003e\u003cdiv\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-e\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-s\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\"\u003e\u003c/div\u003e\u003c/div\u003e","name":"qq"},{"id":56,"data":"\n \u003ch2\u003eРобоча область\u003c/h2\u003e\n \u003cdiv class=\"panel ui-resizable ui-draggable ui-droppable\"\u003e\u003cdiv\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-e\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-s\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\"\u003e\u003c/div\u003e\u003c/div\u003e","name":"123"},{"id":57,"data":"\u003ch2\u003eРобоча область\u003c/h2\u003e\u003cdiv style=\"position: relative; left: 256px; top: 33px;\" class=\"input_wrapper ui-draggable\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e","name":"12312"},{"id":58,"data":"\u003ch2\u003eРобоча область\u003c/h2\u003e\u003cdiv style=\"left: 845.933px; top: 90px; position: absolute; width: 354px; height: 152px;\" class=\"panel ui-resizable ui-draggable ui-droppable\"\u003e\u003cdiv\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-e\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-s\"\u003e\u003c/div\u003e\u003cdiv style=\"z-index: 1000;\" class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\"\u003e\u003c/div\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e\u003cdiv style=\"position: relative; left: 113px; top: 345px;\" class=\"input_wrapper ui-draggable\"\u003e\u003cinput class=\"regular\" type=\"text\"\u003e\u003c/div\u003e","name":"вовочка дурак"}]
Функція яка обробляє це все наразі виглядає так.
Сам знаю що так діставати дані неможна ні при яких обставинах, але зараз не про швидкодійність
function load_ui_by_id(id) {
$("#UiListModal").modal('hide'); // це нам нецікаво :)
$.getJSON("/Home/GetUI", function (ui) {
$.each(ui, function (i) {
if (this.id == id) {
$("#workspace").html(this.data); // тут добавляєм HTML в наш блок воркспейс
init_after_loading(); // тут творяться чудеса
}
});
});
function init_after_loading() {
$(".panel")
.resizable("destroy")
.resizable({ // а це не працює
minWidth: 200,
maxWidth: 400,
// some bugs with it
// containment: "#workspace",
// panel move
}).draggable({ // працює драгабл
containment: "#workspace"
// textbox droped into panel
}).droppable({ // і дропабл
accept: "#mTextBox",
greedy: true,
drop: function (ev, ui) {
$(this).append(textbox);
var height = $(this).height();
height += 30;
$(this).height(height);
}
});
$(".input_wrapper").draggable("destroy").draggable({ containment: "#workspace" });
$(".panel").css({ border: '1px solid red' }); // навіть рамочка додається
}