jsTreeに問題があり、問題は次のとおりです。
- 私のページにはサイズ変更可能な機能を備えたドラッグ可能なdivがあります。基本的には、それらを並べ替えてサイズを変更できます。
- 次に、ajaxを使用して値を取得し、xml_dataプラグインを使用してツリーにデータを入力するjsTreeをフォームに追加しました
- 問題は、ツリーがロードされると、divのサイズを変更できなくなり、ドラッグできなくなることです。
すべてがロードされた後にhtmlでレンダリングされたマークアップを見ると、classNameに「ui-resizable」がなくなっていることがわかります。
誰かがこの奇妙な問題に遭遇しましたか?
よろしくお願いします。
最高のムジ
シンプルなツリーコード
$("#jsTreeDiv").bind("loaded.jstree", function (event, data) {
alert("TREE IS LOADED");
var arrTmp = [90, 91];
//loop thru all item in tree if edit
if (arrTmp.length > 0) {
$("#jsTreeDiv li").each(function (i) {
var $curItem = $(this);
if ($curItem.length > 0) {
for (var i = 0; i < arrTmp.length; i++) {
if (arrTmp[i] == parseInt($curItem[0].id)) {
//delete node
$("#jsTreeDiv").jstree("delete_node", $curItem);
}
}
}
});
}
}).jstree({
"plugins": ["themes", "xml_data", "types", "ui", "dnd", "crrm"],
"xml_data": {
"ajax": {
"type": "POST",
"dataType": "html",
"url": urlXml,
"success": function (msg) { }
},
"xsl": "flat"
},
"themes": {
"theme": "default",
"url": "../scripts/jsTree/default/style.css",
"dots": true,
"icons": true
},
"ui": {
"select_limit": 1,
"initially_select": ["lvl_1"]
}
});
});
シンプルなDivマークアップ
<ul class="Cols-01">
<li>
<div id="Div2" class="ColContainer-01">
<div class="ColContainerHead"><div class="ColHandlerImg-01"><img src="ColHandler.png" class="ColHandler-01" /></div>[ Data Col Name 2 ]</div>
<div class="ColContainerBody"></div>
</div>
</li>
<li>
<div id="Div1" class="ColContainer-01">
<div class="ColContainerHead"><div class="ColHandlerImg-01"><img src="ColHandler.png" class="ColHandler-01" /></div>[ Data Col Name 2 ]</div>
<div class="ColContainerBody"></div>
</div>
</li>
DOMの準備ができたときのコード
$(".Cols-01 li").each(function (i) {
var $Div = $(this).find("div.ColContainer-01");
$Div.resizable(); //make each div resizable
});
$(".Cols-01").sortable(); //make ul list sortable
//then load tree