Domanda

Per impostazione predefinita un contenitore dojo.dnd.Source consente di tenere premuto Ctrl per duplicare / copiare un elemento trascinato piuttosto che spostarla.

So che è possibile impostare = singolari vero per fermare le voci multiple trascinati ma come faccio a interrompere la copia? Duplicare gli elementi non ha alcun senso nel contesto dei miei oggetti (sto facendo una lista trascinabili per riordinare le pagine su un sito web menu).

Grazie

È stato utile?

Soluzione

Non sono sicuro se c'è un modo più bello, ma ho sempre compiuto questo clobbering il metodo copyState nell'istanza di origine per tornare sempre false.

Se hai diverse fonti sulla pagina, si potrebbe anche scegliere di dojo.declare una sottoclasse con il metodo ignorato, o dojo.extend dojo.dnd.Source stesso per clobber il metodo in tutti i casi.

Altri suggerimenti

o la seconda opzione

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

});

Grazie a Ken Franquiero, sono riuscito a risolvere questo problema. Per gli altri nella stessa barca, ecco il mio codice:

/**
 * 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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top