题
默认情况下,dojo.dnd.source容器允许您保持CTRL以复制/复制拖动项目,而不仅仅是移动它。
我知道您可以设置singular = true以停止要拖动多个项目,但是如何停止复制?在我的项目的上下文中,重复项目没有意义(我正在在网站菜单上重新排序页面的可拖动列表)。
谢谢
解决方案
我不确定有更好的方法,但是我一直通过抓住 copyState
源实例上的方法始终返回 false
.
如果您的页面上有几个来源,您也可以选择 dojo.declare
带有该方法的子类,或 dojo.extend
dojo.dnd.Source
本身在所有情况下都可以抓住该方法。
其他提示
或第二个选项
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 });
});
感谢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:
<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>
不隶属于 StackOverflow