我想实现具有以下功能的crrm.move.check_move :我可以检查节点是否被移动或复制,以及用户是否有权执行此操作。我的代码如下所示:
var _isUserHasRightToMoveNodes = false; // set depending on user rights
var _isUserHasRightToCopyNodes = true; // set depending on user rights
var _jsTreePlugins = ["themes", "html_data", "ui"];
if ((_isUserHasRightToMoveNodes) || (_isUserHasRightToCopyNodes)) {
_jsTreePlugins.push("dnd");
_jsTreePlugins.push("crrm");
}
$( this ).jstree({
plugins: _jsTreePlugins,
...,
crrm : {
"move" : {
"check_move" : function( m ) {
// wenn der Knoten verschoben wird
if ((!_isUserHasRightToMoveNodes) && ((m.cy == null) || (!m.cy)))
return false;
// wenn der Knoten kopiert wird
if ((!_isUserHasRightToCopyNodes) && (m.cy != null) && (m.cy))
return false;
return true;
}
}
}
});当我复制一个节点时,它看起来是不可能的(红色十字图标),但它仍然被复制(它应该)。
我用firebug进行了调试,发现m.cy只在节点被拖放时定义,而不是在鼠标悬停在其他节点上时定义,因此出现了红色的十字图标。当然,一旦它被删除,就会定义m.cy并复制节点,就像它应该做的那样。
是我做错了什么,还是这是个bug?有什么解决方法吗?
谢谢你的帮助!Tanja
发布于 2014-02-15 01:28:45
Your return is not as expected - Sample code below should help you:
"crrm": {
"move" : {
"check_move" :
function(tree)
{
//check the condition to enable the drag
if(tree.r.attr("id") != ...){
return {
after : true,
before : false,
inside : false
}
}else{
return false;
}
}
}
}https://stackoverflow.com/questions/15132675
复制相似问题