当你打开节点时,没关系。不调用“select_node.jstree”。但是,当您选择一个节点然后关闭其'父节点时,jstree会因某些奇怪的原因触发该父节点的“select_node.jstree”。有什么方法可以解决这个问题,还是仅仅是jstree的缺陷?我很感激帮助!这是我的代码:
$("#RequirementsTree")
.bind("select_node.jstree", function(event, data) {
ReqNode = data.rslt.obj;
$("#req_tree_modal").dialog({ height: 400, width: 600, modal: true, closeOnEscape: true, resizable: false, show: "blind" });
$("#RMSDoc_ParentNodeID").val(data.rslt.obj.attr("id").substring(4));
if(is_requirement_node(data))
{
dispEditRequirementView();
var ReqCheck = data.rslt.obj.attr("name");
@* This is a REQUIREMENT *@
if(ReqCheck == "requirement")
{
// Ajax call to Server with requirement id passed in
$.ajax({
type: "POST",
url: '@Url.Content("~/RMS/getRequirementStateByID")',
data: {
ReqID : data.rslt.obj.attr("id").substring(4)
},
success: function(new_data) {
if(new_data == 1){
$("#RMSDoc_ReqEnabled").attr("checked", "checked");
$("#RMSDoc_ReqEnabled").val("true");
}
else if(new_data == 0) {
$("#RMSDoc_ReqEnabled").removeAttr("checked");
$("#RMSDoc_ReqEnabled").val("false");
}
}
});
$("#RMSDoc_RBSRequirement_RequirementsId").val(data.rslt.obj.attr("id").substring(4));
$("#RMSDoc_RBSRequirement_RequirementsText").val($.trim(data.rslt.obj.text()));
$("#ExistingTreeSubmit").val("@Model.RMSDoc.RMSEditReqButton.ConfigurableLabelDesc");
}
else {
alert("Requirement node select error");
}
}
@* This is a TREE BRANCH *@
else
{
dispAddRequirementView();
$("#RMSDoc_TreeBranch_Text").val($.trim($('.jstree-clicked').text()));
$("#RMSDoc_TreeBranch_id").val(data.rslt.obj.attr("id").substring(4));
$("#RMSDoc_TreeBranch_Level").val(data.rslt.obj.attr("name").substring(7));
$("#RMSDoc_RBSRequirement_RequirementsText").val("");
$("#ExistingTreeSubmit").val("@Model.RMSDoc.RMSCreateReqButton.ConfigurableLabelDesc");
}
})
答案 0 :(得分:1)
更新: 我找到了一种方法让它在插件中工作,将以下内容添加到“ui”配置部分:
"ui": {
"select_limit": 1,
"selected_parent_close":false
},
我相信发生的事情是,当选择子节点时,折叠父节点会导致选择父节点,从而触发事件。
----------原始答案---------------------
我不确定在插件范围内工作的答案。但我确实找到了解决办法。
我在树“an”中的每个anchor()标记中添加了一个类。
<li class='jstree-closed' id="phtml_3" rel="folder">
<a href="#" class="an">test node 2</a>
</li>
然后我连接JQuery以查找此类的锚点,并以这种方式处理我的点击。
instance.on("click", "a.an", function (e) {
alert("click");
});
我仍然需要添加代码来从父容器中查找ID,而不是最佳...但我不再需要与崩溃竞争我的点击。