【发布时间】:2015-05-26 08:09:25
【问题描述】:
Context : 如下代码所示,在jsp里面的输入框中,从“fruitTree”中拖拽出的水果节点。
这在拖放时成功发生。每次我从fruitTree中拖放水果时,之前拖放的水果节点都会被新拖放的水果覆盖。
问题:现在,之前拖放的水果不能被新的拖放水果节点覆盖。输入框内应该可以拖拽多个水果。
jsp:
<div id = "mydiv">
<form id="addFruits">
<div id ="fruitDetails">
<label>Name:</label>
<input type="text" value="" name="fruitName" id="fruitNameId" class="jstree-drop"/>
</div>
</form>
</div>
<div id="fruitTree">
</div>
在javascript中:
$('div#fruitTree').jstree({
"crrm":{
"move":{
"check_move":function(m){
return false;
}
}
},
"json_data:{
"data":fruitDataReceivedFromDBSuccessfully
},
"themes":{
"theme":"apple",
"icons":true
},
"dnd":{
"drop_finish":function(data){
$('#fruitNameId').attr("value", $(data.o).attr("name");
},
"drop_check":function(data){}
},
"plugins":["themes","json_data","ui","languages","contextmenu","dnd","search","cookies","crrm","core"]
});
我不确定 jstree dnd 插件是否允许在同一个目标上进行多次拖放而不覆盖先前的值。我已经尝试使用 jstree 的核心插件来解决这个问题,但它不起作用:
"core" {
"multiple:true,
"animation":0
}
有什么建议吗?
【问题讨论】:
-
我认为您使用的是 jsTree v.1?考虑升级 - v1 多年来一直不受支持,我怀疑你会找到帮助你的人(因为我是插件的创建者,我可以向你保证 v3 得到积极支持)。
-
:) @vakata 得到大师的回复真是太好了!!!我会按照你说的升级到 v3,看看它是否允许同时拖放多个节点......如果不是,那么我必须绕过!
-
v3 支持多个节点拖放,但请记住,api 已经发生了一些变化 - 将其视为新产品并阅读 repo 和 jstree.com 中的文档(repo 是更好一点,因为它有 jsfiddles)。
-
@vakata 当我浏览文档时,我有一个疑问要分享。默认情况下,核心插件允许选择多个节点。但在我的情况下,我试图从 jstree 中拖动多个节点并拖放到要提交的表单元素内的输入框上。输入框有一个 class="jstree-drop" 使其可放置。我们是否有像 class="jstree-drop-multiple" 这样的东西,以便可以将多个节点拖放到输入框上而不会覆盖之前的拖放。我已经发布了一个解决方法,但我想 jstree 本身可以让我在没有解决方法的情况下实现这一目标。
-
这是您在 v.3 中实现外部项目 DND 的方式:groups.google.com/d/msg/jstree/BYppISuCFRE/KKh7oHZzNkwJ 是否覆盖之前的项目完全取决于您。这里也是小提琴:jsfiddle.net/DGAF4/517
标签: javascript jquery drag-and-drop jstree jstree-dnd