2011-04-28 2 views
1

버튼에 툴팁의 위치를 ​​표시하고 싶습니다. 나는 ExtJs의 포럼에서 언급 한 것처럼 아래의 방법을 시도했다. 작동하지 않으며 getTargetXY 메서드를 무시할 수 없습니다. 툴팁은 항상 같은 위치에 표시됩니다. 어떤 해결책이 있습니까?ExtJs에서 툴팁의 위치를 ​​변경하는 방법 3.3

this.desktopButton = new Ext.Button({ 
    icon: "arrow_in.png", 
    scope: this, 
    handler: this.desktopButtonHandler, 
    tooltip: new Ext.ToolTip({ 
     text: 'Message', 
     getTargetXY: function() { 
      return [100, 100]; 
     } 
    }) 
}); 

답변

4

Ext 요소는 설명서에 지정된대로 구성 옵션을 전달할 수 있습니다. getTargetXY은 이러한 옵션 중 하나가 아닙니다. 모든 내선 툴팁이 기존의 툴팁 클래스를 확장하여 새로운 기능

  • 를 사용하는

    • 무시하는 방법
    에게 재정 지원 : 당신이 메소드를 오버라이드 (override) 할 경우

    , 당신은 두 가지 선택이

    다른 결과가있을 수 있으므로 메서드를 재정의하는 것은 좋지 않습니다. 그러나 나는 둘 다하는 법을 설명 할 것이다.

    Ext.override(Ext.Tooltip, { 
        getTargetXY: function() { 
         return [100, 100] 
        } 
    }); 
    

    툴팁 확장 할 :

    툴팁 대체하려면 'targetXY'를 설정하면 내선 JS가이 설정을 대체 할 수 있으므로, 인정 증명할 수

    MyToolTip = Ext.Extend(Ext.Tooltip, { 
        constructor: function(config) { 
         var config = config || {}; 
         if (config.getTargetXY) { 
          this.getTargetXY = config.getTargetXY; 
         } 
    
         MyToolTip.superclass.constructor.call(this, config); 
        } 
    }); 
    
  • 0

    주 (뷰에 따라 크기). "showAt"메서드를 재정의하면 다음을 방지 할 수 있습니다.

    showAt:function() {  
        var xy = [this.getTargetXY()[0],this.getTargetXY()[1]-this.height] 
        MyTooltip.superclass.showAt.call(this, xy); 
    } 
    
    관련 문제