기본적으로 dojo.dnd.Source 컨테이너를 사용하면 끌기 된 항목을 이동하는 대신 Ctrl 키를 누른 채로 복사/복사 할 수 있습니다.dojo.dnd에서 복사 사용 안함
여러 항목을 드래그하는 것을 중지하려면 singular = true를 설정할 수 있지만 복사를 중지하려면 어떻게해야합니까? 항목을 복제하는 것은 내 항목의 컨텍스트에서 의미가 없습니다 (웹 사이트 메뉴에서 페이지 순서를 변경할 수있는 목록을 만들고 있습니다).
감사
기본적으로 dojo.dnd.Source 컨테이너를 사용하면 끌기 된 항목을 이동하는 대신 Ctrl 키를 누른 채로 복사/복사 할 수 있습니다.dojo.dnd에서 복사 사용 안함
여러 항목을 드래그하는 것을 중지하려면 singular = true를 설정할 수 있지만 복사를 중지하려면 어떻게해야합니까? 항목을 복제하는 것은 내 항목의 컨텍스트에서 의미가 없습니다 (웹 사이트 메뉴에서 페이지 순서를 변경할 수있는 목록을 만들고 있습니다).
감사
더 좋은 방법이 있다면 확실 해요,하지만 난 항상 항상 false
를 반환하는 소스 인스턴스에 copyState
방법을 건드리지하여이 작업을 수행했습니다.
페이지에 여러 소스가있는 경우 메서드 오버라이드 된 하위 클래스 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 :
<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>
또는 두 번째 옵션
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 });
});
덧붙여이 공식적으로 승인 된 방법이다. ;-) –