首页 > 解决方案 > JsTree create_node 函数正在从节点更新先前添加的数据

问题描述

我正在创建 JsTree,具有以下功能:(JsFiddle 链接在最后)

我的问题是:当我从放置在页面上的其他控件向标签添加文本时(目前我使用了复选框,但后期会有多个控件)它工作正常,但之后我添加了新节点所有设置的数据被刷新。

这是我的代码:

    <div id="html1">
      <ul>
        <li>
        <label class="lblProduct">New</label>
        </li>
      </ul>
    </div>
 <label class="labelRadio">No Fever:</label> <div class="inputRadio"><input id="chkBx_No_Fever" type="checkbox" style="outline:none;"></div>
 <button id="btnTest">Add Filter</button>

查询:

 $('#html1').jstree(
                {
                    "types": {
                        "filter": {
                            "icon": "glyphicon glyphicon-flash"
                        },
                        "treatment": {
                            "icon": "glyphicon glyphicon-ok"
                        }
                    },
                    "core": {
                        "check_callback": true,
                        "themes": {
                            "default": "large",
                            "dots": true
                        }
                    },
                    "plugins": ["wholerow", "changed", "types"]
                });



 var _selected_Node_Container;
        var _newlyCreatedNodeId;
        var _selectedNodeId;
        var _parentId_Of_Selected_Node;
        $("#btnTest").click(function () {
            debugger;
            _selectedNodeId = $('#html1').jstree('get_selected').toString();

            if (_selectedNodeId.length <= 0) { abp.notify.error('Please select record to configure.'); }
            else {
                create_Filter_Node();

                //--- Move selected node under newly created Node

                $('#html1').jstree("move_node", _selectedNodeId, _newlyCreatedNodeId, 0, null, true, false);
                //---- Add Another node for pass/fail condition
                $("#html1").jstree('create_node', _newlyCreatedNodeId, "sub child row", 'last', function (newNode) { _newlyCreatedNodeId = newNode.id });
            }
        });

        $('#html1').on('activate_node.jstree', function (e, data) {
            _parentId_Of_Selected_Node = data.instance.get_node(data.node.parent).id;
            _selectedNodeId = data.node.id;
            _selected_Node_Container = $('li[id=' + _selectedNodeId + ']');
            _selected_Node_Container = _selected_Node_Container.find($('a[id=' + _selectedNodeId + '_anchor]'))

        });
        function create_Filter_Node() {
            var data="";
            data += "<label name=\"lbl_No_Fever\" class=\"lbl_No_Fever\">Click This Row and then click Checkbox</label>";
            data += "<label name=\"lbl_Days_On_Feed_Mode\" class=\"lbl_Days_On_Feed_Mode\"></label>";
            data += "<label name=\"lbl_Days_On_Feed_Value\" class=\"lbl_Days_On_Feed_Value\"></label>";
            data += "<label name=\"lbl_Temperature_Mode\" class=\"lbl_Temperature_Mode\"></label>";
            data += "<label name=\"lbl_Temperature_Value\" class=\"lbl_Temperature_Value\"></label>";
            data += "<label name=\"lbl_Weight_Mode\" class=\"lbl_Weight_Mode\"></label>";
            data += "<label name=\"lbl_Weight_Value\" class=\"lbl_Weight_Value\"></label>";
            data += "<label name=\"lbl_Animal_Type\" class=\"lbl_Animal_Type\"></label>";
            data += "<label name=\"lbl_Processing_Group\" class=\"lbl_Processing_Group\"></label>";
           // data += "<label name=\"lbl_Relapse\" class=\"lbl_Relapse\"></label>";
            data += "<input type=\"hidden\" name=\"lbl_Relapse\" class=\"lbl_Relapse\"/>";
            $("#html1").jstree('create_node', _parentId_Of_Selected_Node, data, 'first', function (newNode) { _newlyCreatedNodeId = newNode.id });
        }

        //------ No Filter checkbox
        $("#chkBx_No_Fever").click(function () {
            if ($(this).is(":checked")) {
                _selected_Node_Container.find('.lbl_Relapse').val("Value From Checkbox");
                _selected_Node_Container.find('.lbl_No_Fever').text("Value From Checkbox");

            } else {
                _selected_Node_Container.find('.lbl_Relapse').text(false);
            }
        });

jsFiddle

如何测试:

标签: jqueryjstree

解决方案


推荐阅读