본문으로 건너뛰기

이벤트 처리

이벤트 리스너 연결

사용 가능한 모든 이벤트에 사용자 정의 핸들러를 추가할 수 있습니다. 이를 위해 다음 매개변수와 함께 diagram.events.on() 메서드를 사용하세요.

  • name - (string) 이벤트의 이름
  • handler - (function) 핸들러 함수
diagram.events.on("ShapeClick", (id) => {
alert("You've just clicked an item with id="+id);
});

동일한 이벤트에 여러 핸들러를 연결할 수 있으며, 연결된 모든 핸들러가 실행됩니다. 일부 핸들러가 false를 반환하면 관련 작업이 차단됩니다. 이벤트 핸들러는 연결된 순서대로 처리됩니다.

이벤트 리스너 분리

이벤트를 분리하려면 diagram.events.detach() 메서드를 사용하세요.

diagram.events.on("CustomEvent", args);

diagram.events.detach("CustomEvent");

이벤트 호출

이벤트를 호출하려면 diagram.events.fire() 메서드를 사용하세요.

diagram.events.fire("CustomEvent", args);
// args는 인수의 배열입니다

일반적으로 이벤트는 자동으로 호출되므로 이 메서드를 사용할 필요가 없습니다.

지원되는 이벤트 목록

Diagram 이벤트

API 참조에서 Diagram API 이벤트의 전체 목록을 확인하세요.

에디터 이벤트

Diagram Editor API 이벤트 목록은 API 섹션에서 확인할 수 있습니다.

노트

Diagram Editor의 이벤트 외에도, 에디터 화면에서 작업하는 동안 Diagram 객체의 이벤트를 적용할 수도 있습니다. 예를 들면 다음과 같습니다.

const editor = new dhx.DiagramEditor("editor_container", {
controls: { autoLayout: false }
});
editor.parse(data);

editor.diagram.events.on("ShapeClick", (id) => {
alert("You've just clicked an item with id=" + id);
});

아래 나열된 이벤트를 적용해야 하는 경우에도 이 방법을 사용할 수 있습니다.

CellManager 이벤트

API 참조에서 CellManager API 이벤트의 전체 목록을 확인하세요.

DataCollection 이벤트

API 참조에서 DataCollection API 이벤트의 전체 목록을 확인하세요.

InlineEditor 이벤트

API 참조에서 InlineEditor API 이벤트의 전체 목록을 확인하세요.

Selection 이벤트

API 참조에서 Selection API 이벤트의 전체 목록을 확인하세요.