Extjs 单击页面中的任意位置时隐藏日期字段
我试图在DOM上单击除日期字段以外的任何位置时隐藏extjs日期字段。单击dom bodyClick中的任意位置时,单击函数get called。根据页面坐标检索元素对象,然后将此元素对象与日期字段对象进行比较。这工作正常,但每当我再次单击日期选择器“日期字段”get hide时,问题就会出现 示例代码-Extjs 单击页面中的任意位置时隐藏日期字段,extjs,extjs4,extjs4.1,Extjs,Extjs4,Extjs4.1,我试图在DOM上单击除日期字段以外的任何位置时隐藏extjs日期字段。单击dom bodyClick中的任意位置时,单击函数get called。根据页面坐标检索元素对象,然后将此元素对象与日期字段对象进行比较。这工作正常,但每当我再次单击日期选择器“日期字段”get hide时,问题就会出现 示例代码- bodyClick: function(e){ var me = this, elem, t; var flag =true; elem = me
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();
}
}
单击DOM(extJs)中的任意位置时隐藏日期字段的任何建议。您可以在组件所在的面板或容器的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
}
}
希望这对你有帮助。嘿,斯雷克,谢谢你,伙计。。我已经试过了,但是有些目标和日期选择器对象不匹配。目标给出了当前对象,不管怎样,如果我们得到了目标的顶级父对象,那么我们可以将其与日期选择器对象进行比较。