2013-11-25 3 views
0

나는 다음과 같은 방법으로 크기 조정 핸들러를 초기화합니다 코드 조각이 :다시 초기화 (또는 재 선언) Dojo 위젯

dojo._hasResource["dojox.layout.ResizeHandle"] = true; 
dojo.provide("dojox.layout.ResizeHandle"); 
dojo.experimental("dojox.layout.ResizeHandle"); 
dojo.declare("dojox.layout.ResizeHandle", [dijit._Widget, dijit._Templated], { 
    _init: function(){}, 
    create: function(){ 
     this.connect(this.resizeHandle, "mouseover", "_init"); 
    } 
    // ... more properties 
}); 

이것은 내가 편집 할 수있는 핵심 응용 프로그램 파일에 기록됩니다. 터치 이벤트에 응답하려면이 크기 조정 핸들러를 리 바인드해야합니다. 이 위젯을 덮어 쓰고 "터치"이벤트로 크기 조정 핸들러를 리 바인드 할 생각이었습니다. 이와 비슷한 것,

this.connect(this.resizeHandle, "touchstart", "_init"); 

이전에는 Dojo에서 일한 적이 없습니다. 따라서 모듈 시스템이 어떻게 작동하는지 잘 모르겠습니다. 위젯을 식별하는 문자열 ("dojox.layout.ResizeHandle")을 변경하여 새 위젯을 만들려고했지만 행운이 없었습니다.

기존 위젯을 삭제하고 터치 이벤트로 리 바인드하려면 어떻게해야합니까?

답변

1

위 코드는 위젯을 초기화하지 않습니다. declare 함수는 클래스를 만듭니다. 이 경우 "dojox.layout.ResizeHandle"이라는 클래스를 만듭니다. 이 클래스를 사용하려면 클래스를 요구 한 다음 인스턴스화해야합니다. 이 같은 것

require(["dojox/layout/ResizeHandle"], function(ResizeHandle) { 
    var resize = new ResizeHandle(); 
} 

거기에서 새로운 핸들러를 연결할 수 있습니다.

on(resize.resizeHandle, "touchstart", "_init); 

그것은 또한 당신이 도장의 이전 버전을 사용 할 수 있지만 당신이 이전되지 않는 도장 구문을 (등, 대에 연결)를 사용하는 것을 지적 가치가있다.