Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jsTree在多棵树上拖放_Javascript_Jquery_Twitter Bootstrap_Jstree - Fatal编程技术网

Javascript jsTree在多棵树上拖放

Javascript jsTree在多棵树上拖放,javascript,jquery,twitter-bootstrap,jstree,Javascript,Jquery,Twitter Bootstrap,Jstree,我需要有n个jsTress,用户可以从一个公共树中删除项目。最初,这些树可以是空的,因此当用户在其中一个树上删除一个项目时,我需要向服务器发送一个AJAX请求,以将其保存在数据库中 为了实现n个树,我有一个循环,它创建来保存它们,类似这样: var DayToday = moment(); for (i = 0; i < 5; i++) { dayHTML += '<div class="col-md-2 column sortable"> \

我需要有n个jsTress,用户可以从一个公共树中删除项目。最初,这些树可以是空的,因此当用户在其中一个树上删除一个项目时,我需要向服务器发送一个AJAX请求,以将其保存在数据库中

为了实现n个树,我有一个循环,它创建
来保存它们,类似这样:

var DayToday = moment();
for (i = 0; i < 5; i++) {
  dayHTML += '<div class="col-md-2 column sortable"> \
                <div class="portlet portlet-sortable green-turquoise box" id="day_' + i + '_portlet"> \
                  <div class="portlet-title"> \
                    <div class="caption">' + DayToday.format('MMMM Do YYYY') + '</div> \
                    <div class="tools"> \
                      <a href="javascript:;" class="collapse"> </a> \
                      <a href="javascript:;" class="reload"> </a> \
                      <a href="javascript:;" class="remove"> </a> \
                    </div> \
                    </div> \
                    <div class="portlet-body"> \
                      <div id="day_' + i + '_tree" class="tree-demo" style="min-height:50px;"> \
                      <li></li> \
                    </div> \
                  </div> \
                </div> \
                <div class="portlet portlet-sortable-empty"> </div> \
            </div>';
  DayToday = DayToday.add(1, 'days');
}

$("#sortable_portlets").append(dayHTML);
var DayToday=moment();
对于(i=0;i<5;i++){
dayHTML+='\
\
\
“+DayToday.format('MMMM Do YYYY')+”\
\
\
\
\
\
\
\
\
  • \ \ \ \ \ '; daydoday=daydoday.add(1,'天'); } $(“#可排序的#Portlet”).append(dayHTML);
    然后是添加JS树的循环:

    DayToday = moment();
    var currTree = [];
    for (i = 0; i < 5; i++) {
      currTree[i] = $(dayTrees[i]).jstree({
          "core": {
            "id": DayToday.format('YYYY-MM-DD'),
            "animation": 150,
            'check_callback': function(operation, node, node_parent, node_position, more) {
              console.log(node_parent);
              return true; //allow all other operations
            },
            "themes": {
              "stripes": false
            },
            "data": {
              "url": "http://localhost:8888/bizsked/public/taskassignment/json?asg_date=" + DayToday.format('YYYY-MM-DD'),
              "dataType": "json"
            }
          },
          "rules": {
            droppable: ["tree-drop"],
            multiple: true,
            deletable: "all",
            draggable: "all"
          },
          "dnd": {
            open_timeout: 100
          },
          "plugins": ["dnd"]
    
        })
        .on("move_node.jstree", function(e, data) {
          console.log(data);
        })
        .on("copy_node.jstree", function(e, data) {
          console.log(data);
        });
      DayToday = DayToday.add(1, 'days');
    }
    
    DayToday=moment();
    var currTree=[];
    对于(i=0;i<5;i++){
    currTree[i]=$(dayTrees[i]).jstree({
    “核心”:{
    “id”:daydoday.format('YYYY-MM-DD'),
    “动画”:150,
    “检查回调”:函数(操作、节点、节点父级、节点位置等){
    console.log(节点\父节点);
    返回true;//允许所有其他操作
    },
    “主题”:{
    “条纹”:假
    },
    “数据”:{
    “url”:”http://localhost:8888/bizsked/public/taskassignment/json?asg_date=“+daydoday.format('YYYY-MM-DD'),
    “数据类型”:“json”
    }
    },
    “规则”:{
    可放置:[“树放置”],
    多重:对,
    可删除:“全部”,
    可拖动:“所有”
    },
    “dnd”:{
    打开超时:100
    },
    “插件”:[“dnd”]
    })
    .on(“move_node.jstree”,函数(e,数据){
    控制台日志(数据);
    })
    .on(“copy_node.jstree”,函数(e,数据){
    控制台日志(数据);
    });
    daydoday=daydoday.add(1,'天');
    }
    
    因此,实际上,您可以从每棵树拖放到另一棵树。但我似乎无法理解的是,我如何才能获得掉在树上的ID或某个ID。好的,我可以很容易地找到正在拖动的项,如果它被放到子节点(不是主节点)上,那么我可以找到该ID,但是如果它被放到空树或主节点(#),我就找不到ID,只有“#”。也许我遗漏了一些基本的东西,但我需要知道的是(a)正在删除的项目的id(简单)和(b)已删除项目的树的id。。(不那么容易)


    任何关于如何做到这一点的建议都将不胜感激,因为我已经花了两天的时间试图解决这个问题

    尝试探索
    移动节点
    事件中的
    数据
    对象。您应该在那里的某个地方有一个
    实例
    属性。这就是树。

    尝试探索
    移动节点
    事件中的
    数据
    对象。您应该在那里的某个地方有一个
    实例
    属性。这就是树。

    尝试探索
    移动节点
    事件中的
    数据
    对象。您应该在那里的某个地方有一个
    实例
    属性。这就是树。我不知道为什么我以前没有发现它,但你是对的-这是我需要的-console.log(data.instance.element.context.id);谢谢不客气!然后您会接受答案吗?尝试探索
    移动节点
    事件中的
    数据
    对象。您应该在那里的某个地方有一个
    实例
    属性。这就是树。我不知道为什么我以前没有发现它,但你是对的-这是我需要的-console.log(data.instance.element.context.id);谢谢不客气!那么你会接受答案吗?