在dojo.dnd中禁用复制

voi*_*ate 5 dojo drag-and-drop dojo-dnd

默认情况下,dojo.dnd.Source容器允许您按住Ctrl来复制/复制拖动的项目而不是仅仅移动它.

我知道你可以设置singular = true来停止拖动多个项目但是如何停止复制?在我的项目的上下文中复制项目是没有意义的(我正在制作一个可拖动的列表,用于重新排序网站菜单上的页面).

谢谢

Ken*_*iro 6

我不确定是否有更好的方法,但我总是通过破坏copyStateSource实例上的方法来总是返回来实现这一点false.

如果您在页面上有多个Source,那么您也可以选择dojo.declare使用覆盖方法的子类,或者dojo.extend dojo.dnd.Source自己在所有实例中对该方法进行破坏.


小智 6

或者第二种选择

dojo.addOnLoad(function(){

    //Disable the key events Ctrl and Shift
    dojo.extend( dojo.dnd.Source, { copyState: function( keyPressed, self ){ 
        return false; }}
    );

    //Create the dnd source object for data point column bar
    columnBar = new dojo.dnd.Source("viewColumnBar",{ singular: true });

});
Run Code Online (Sandbox Code Playgroud)