我必须创建拖放功能才能将项目从一个区域移动到另一个区域。为此,我使用fieldchooser.js
。它可以帮助我从源到源,从源到目标,从目标到源,从目标到目标。但我想删除从源到源的拖放。怎么可能在fieldchooser.js
?
答案 0 :(得分:0)
我有一个想法来解决你的问题。没有办法避免在同一列中拖放,但我认为避免此行为的一种方法是禁用mousedown上的项目并在mouseup上重新激活它们。 简而言之,这个想法是将所有不想移动的项目设置为阻止在同一个列表中移动(这里有关于this 的jquery文档)并在移动它时重置所有内容其他列表,带有鼠标。 这里有一个javascript我用来测试这个解决方案。
$( "#sourceFields div" ).mousedown(function(){
$(this).siblings().addClass("ui-state-disabled");
$( "#sourceFields" ).sortable({
items: "li:not(.ui-state-disabled)"
});
});
$( "#sourceFields div" ).mouseup(function(){
$(this).siblings().removeClass("ui-state-disabled");
$( "#sourceFields" ).sortable({
items: "li:not(.ui-state-disabled)"
});
});
无论如何,你需要管理这个解决方案的一些副作用。此脚本无法解决所有行为,但可能是解决方案的一小步。
我希望有用。