2014-12-17 3 views
2

date-field를 제외한 DOM을 클릭하면 extjs date-field를 숨기려고합니다. dom bodyClick 함수는 아무 곳이나 클릭하는 동안 호출됩니다. 페이지 좌표의 기준에 따라 요소 개체가 검색된 다음이 요소 개체가 날짜 필드 개체와 비교됩니다.이 작업은 훌륭하지만 문제는 내가 다시 날짜 선택 도구를 클릭 할 때마다 발생합니다 " 날짜 필드 "숨기기.페이지의 아무 곳이나 클릭하여 DateField 숨기기

샘플 코드 -

bodyClick: function(e){ 
     var me = this, elem, t; 
     var flag =true; 
     elem = me.getEl(); 
     for(t = Ext.dom.Element.fromPoint(e.getX(), e.getY()); t && t != null;){ 
     if (Ext.fly(elem).contains(t)){ 
      flag =false; 
     } 
     } 

     if(flag){ 
     me.hide(); 
     } 
    } 

enter image description here

DOM (ExtJS로)에서 아무 곳이나 클릭하면서하여 DateField를 숨기는 어떤 제안

.

답변

4

당신은 당신의 구성 요소에있는 패널이나 용기의 afterRender이 시도 할 수 있습니다.이 당신을 도와줍니다

this.mon(Ext.getBody().getEl(), 'click', this.yourFunction, this); 

    yourFunction:function(e){ 
      var comp = Ext.ComponentQuery.query('datepicker')[0];//Get your datepicker component 
      if (Ext.fly(e.getTarget()) != comp) { //get the target using Ext.fly 
        comp.hide();    //Hide the component if the target is not the datepicker 
       } 

    } 

희망을.

+0

안녕하세요 sreek에게 감사드립니다. 나는 datepicker object.Target과 일치하지 않는 대상을 어떻게 시도 했나요? 현재 대상을 제공합니다. 대상의 상위 부모 개체를 얻는다면 어쨌든 datepicker 개체와 비교할 수 있습니다. –

관련 문제