2017-01-25 1 views
0

에서 스케줄러 타임 라인에 드롭 .드래그, 내가 아니라 타사 또는 자체 작성 구성 요소에서 끌어와 외부 DHTMLX 구성 요소에서 드롭 할 수 있다고 판단하고 DHTMLX ’의 사이트에서 <a href="http://docs.dhtmlx.com/scheduler/dhtmlx_components_integration.html" rel="nofollow noreferrer">this page on external drag and drop</a>을 읽을 갖는 타사 구성 요소

내가 모듈 자바 스크립트 드래그 앤 드롭 포함했다

: 나는 ’의 내 구성 요소에 첨부하는 드래그 이벤트가 작성한

scheduler.attachEvent("onExternalDragIn", function (id, source, event) { 
    return true; 
}); 

:

ext/dhtmlxscheduler_outerdrag.js 

내가 더미 이벤트 핸들러를 만들었을 :

html :

(210 개)
<div draggable="{{item.draggable}}" data-itemid="{{item.id}}" 
    ondragstart="drag(event, this.getAttribute('data-itemid'))"> 

JS :

function drag(ev, itemId) { 
    ev.dataTransfer.setData("text", itemId); 
} 

하지만 ... 나는 t가 스케줄러 타임 라인 구성 요소 drop을 구현하는 방법을 알고 ’을 돈.

HTML :

<div id="scheduler1" class="dhx_cal_container" ondrop="drop(event)" 
    ondragover="allowDrop(event)"> 

JS :

function allowDrop(ev) { 
    ev.preventDefault(); 
} 

function drop(ev) { 
    ev.preventDefault(); 
    var data = ev.dataTransfer.getData("text"); 
} 
...하지만 않습니다 모든 내가 떨어질 때 일반적인 이벤트를 발생이다

나는이 시도 그리드에 뭔가 나는 (분명히) 어떤 격자 셀에 대해서 나는 아무런 정보도 얻지 못한다. 나는 ’을 떨어 뜨렸다. 어떻게 행/열 내가 ’ 도착했는지 알기 위해 이것을 코딩하는 방법은 무엇입니까?

답변

0

DHTMLX ’ 사이트에서 this related question의 솔루션을 발견했습니다.

내가 잃어버린 모든 내 drop 방법 getActionData()를 호출이라고 밝혀 : 또한

function drop(ev) { 
    ev.preventDefault(); 
    var sourceData = ev.dataTransfer.getData("text"); // what we dragged (the tree node in this case) 
    var targetData = scheduler.getActionData(ev);  // what we dropped (.date = datetime, .section = id of section) 
} 

, 나는에 스케줄러가 선언하는 divdrop(event)에 대한 참조를 다시 넣어 필요 :

<div id="scheduler1" class="dhx_cal_container" style="width:100%; height:620px;" 
    ondrop="drop(event)" ondragover="allowDrop(event)"> 

그리고이 attachEvent 관계없는 것입니다 :

scheduler.attachEvent("onExternalDragIn", function (id, source, event) { 
    return true; 
}); 
관련 문제