Сегодня вот весь день сижу работаю несмотря на температуру. Парюсь с jQuery. Заметил кучу недоработок и особенностей.
То, что меня больше всего удивило, это когда мы создаем UI/Dialog, то элемент, к которому мы применили функцию dialog() перемещается по DOM-у в конец BODY. Применив к этому же элементу эту же функцию ещё раз, мы получаем второй экземпляр диалога, а не переписывсаем уже существующий. Обходом этого стало условие: if $("#dialog").hasClass("ui-dialog-content") == false)
Также я ещё использую плагин jQuery TreeView, который по названию понятно что делает. Только вот в асинхронной загрузке веток отсутствует функция перезагрузки ветки. Обходилось оно так:
if ($("#cat_" + root).hasClass('collapsable'))
{
$("#cat_" + root + " > div").click();
$("#cat_" + root + " > ul").html("< li id='cat_placeholder' class='last' >< span >placeholder< /span >< /li >");
}
$("#cat_" + root).addClass("hasChildren");
$("#cat_" + root + " > div").click();
Ну и стоит ещё заметить, что treeview использует $.getJSON() вместо $.ajax(). Опять таки пришлось переписать.