有没有办法以编程方式压制jstree“创建”事件?

时间:2012-09-16 23:50:40

标签: javascript jquery events jstree

这就是我的困境:我正在使用contextmenu和以编程方式创建新的jstree节点。我遇到的问题是,当我以编程方式创建一个新的jstree节点时,它还会触发contextmenu .create绑定事件。

因此,实质上,由于手动创建调用以及contextmenu创建绑定,因此发生重复。我通过在contextmenu创建事件处理程序中放置 if 语句来部分解释这一点,以防止在以编程方式触发事件时运行其内容。

但是,仍然会产生重复,因为无论如何都会调用contextmenu bound。

有没有办法在编程调用create时抑制contextmenu创建事件?

以下是代码:

“创建”的上下文菜单事件处理程序:

        .bind("create.jstree", function(e, data) {
        debugger;
        // Ajax call to Server with parent node id and new node text
        if($("#RMSDoc_RequirementFlag").val() == "CONTEXT")
        {
            $.ajax({
                "type": "POST",
                "url": '@Url.Content("~/RMS/insertRMSNode")',
                "data": {
                        "ParentID" : parseInt(ParentNode),
                        "Level" : parseInt(ParentLevel),
                        "ChildNodeText" : data.rslt.obj.text()
                },
                "success": function(new_data) {
//                    $.jstree._reference($("#RequirementsTree")).refresh(-1);
                    var addedNode = data.rslt.obj;

                    $(addedNode).attr("id", "rbs_" + new_data.RMSHierarchyId);
                    $(addedNode).attr("name", "rlevel_" + new_data.Level);
                    $(addedNode).addClass("jstree-closed");
                    ParentNode = null;
                    ParentLevel = null;
                    data = null;
                    return new_data;
                }   
            });
        }

        BranchReqFLag = null;

这是以编程方式调用的create方法:

    function ReqSuccess(response) {
    // Dynamically add tree branch only (for ipad)
    if($("#RMSDoc_RequirementFlag").val() == "ADD_BRANCH_ONLY") {
        $("#RMSDoc_TreeBranch_id").val("0");
        $("#RMSDoc_TreeBranch_Text").val("");
        $("#RequirementsTree").jstree("create", null, "last", {"data" : response.TreeBranch.Text,
                                                                "state" : "closed",
                                                                "attr" : { "id" : "rbs_" + response.TreeBranch.id, "name" : "rlevel_" + response.TreeBranch.Level }
                                                                });
    }

0 个答案:

没有答案