Pregunta

Por defecto un recipiente dojo.dnd.Source le permite mantener Ctrl para duplicar / copiar un elemento arrastrado en lugar de moverlo.

Sé que puede establecer = singulares verdaderos para detener varios elementos, siendo arrastrados pero ¿cómo detener la copia? Duplicación de artículos no tiene sentido en el contexto de mis artículos (Estoy haciendo una lista que pueden arrastrarse para reordenar las páginas en un sitio web menú).

Gracias

¿Fue útil?

Solución

No estoy seguro si hay una manera más agradable, pero siempre que he logrado esto mediante el método clobbering copyState en la instancia de origen para volver siempre false.

Si tienes varias fuentes en la página, que también podría optar por dojo.declare una subclase con el método anulado, o dojo.extenddojo.dnd.Source a clobber el método en todos los casos.

Otros consejos

o la segunda opción

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

});

Gracias a Ken Franquiero, me las arreglé para resolver este problema. Para otros en el mismo barco, aquí está mi código:

/**
 * 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:

<div id="position_container">
    <div class="dojoDndItem">
        <div class="dojoDndHandle drag_icon drag_handle"></div> <strong>Short Paragraphs</strong>
    </div>
    <div class="dojoDndItem">
        <div class="drag_icon fixed_handle"></div> About Us
    </div>
    <div class="dojoDndItem">
        <div class="drag_icon fixed_handle"></div> Team Members
    </div>
</div>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top