if($("#tree_container").size() > 0)
{
$("#tree_container").jstree({
"json_data" : {
"ajax" : {
//"url" : "/view/search/newTech.json"
"url" : "/search/newTechData.navi"
}
},
"plugins" : [ "themes", "json_data", "ui" ]
})
.bind("select_node.jstree", function (e, data) {
var open_status = $(this).jstree("is_open");
// open_status가 true이면 노드를 닫고, fals이면 node를 연다.
if(open_status)
{
$(this).jstree("close_node");
}
else
{
$(this).jstree("open_node");
}
//--> $(this)를 사용하여 화살표로 열고 닫기 이외에, 노드를 선택했을때의 열고 닫음도 제어할 수 있다.
// 데이터의 해당 id 값을 얻어온다.
var id = data.rslt.obj.data("id");
// 최하위 노드가 아닐때만 코드를 선택할 수 있도록 한다.
if(id != undefined && id != "root_node")
{
var choice_code = $("input[name='choice_newTechCode']").val();
// 입력전 이미 사전에 입력된 코드를 배열로 저장.
var total_code_before_choice_array = choice_code.split("+");
for(var i=0; i < total_code_before_choice_array.length; i++)
{
if(id == total_code_before_choice_array[i])
{
alert("이미 선택한 코드입니다");
return;
}
}
// 첫번째 코드에는 "+" 문자열을 생략한다.
if(!choice_code)
{
var total_code = choice_code + id;
}
else
{
var total_code = choice_code + "+" + id;
}
// 입력후 입력된 코드를 배열로 저장.
var total_code_after_choice_array = total_code.split("+");
if(total_code_after_choice_array.length <= 5)
{
$("input[name='choice_newTechCode']").val(total_code);
}
else
{
alert("코드는 5개까지만 추가 가능합니다");
return;
}
}
});
}