在dojo.dnd中禁用复制

在dojo.dnd中禁用复制,dojo,drag-and-drop,dojo-dnd,Dojo,Drag And Drop,Dojo Dnd,默认情况下,dojo.dnd.Source容器允许您按住Ctrl键复制/复制拖动的项目,而不仅仅是移动它 我知道可以将singular=true设置为停止拖动多个项目,但如何停止复制?在我的项目上下文中,复制项目是没有意义的(我正在制作一个可拖动的列表,用于重新排序网站菜单上的页面) 谢谢我不确定是否有更好的方法,但我总是通过在源实例上重击copyState方法来实现这一点,以始终返回false 如果页面上有多个源代码,您也可以选择dojo.declare一个方法被覆盖的子类,或者dojo.ex

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

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


谢谢

我不确定是否有更好的方法,但我总是通过在源实例上重击
copyState
方法来实现这一点,以始终返回
false


如果页面上有多个源代码,您也可以选择
dojo.declare
一个方法被覆盖的子类,或者
dojo.extend
dojo.dnd.Source
本身,在所有实例中都会对方法进行破坏。

多亏了Ken Franquiero,我成功地解决了这个问题。对于同一条船上的其他人,我的代码如下:

/**
 * Extend dojo.dnd.Source to prevent copying
 */

dojo.require( 'dojo.dnd.Source' );
dojo.addOnLoad( function() {

    dojo.declare
    (
        'EditPosition',
        dojo.dnd.Source,
        {
            copyState: function( keyPressed, self )
            {
                return false;
            }
        }
    );

    oEditPosition = new EditPosition
    ( 
        'position_container', 
        {
            withHandles: 'true'
        } 
    );

} );
HTML:


短段落
关于我们
团队成员
或第二个选项

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 });

});

顺便说一句,这是官方批准的方法。;-)
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 });

});