+ -
当前位置:首页 → 问答吧 → Ext一个很奇怪的问题。。。有请ext高人。。

Ext一个很奇怪的问题。。。有请ext高人。。

时间:2011-01-05

来源:互联网

还是先看代码吧
JScript code

_window = Ext.extend(Ext.Window,{
    form: new MyFormPanel(),//MyFormPanel为自定义的FormPanel类
    constructor: function(){
        _window.superclass.constructor.call(this, {
             title: "测试窗体",
             items: this.form,
            buttons:[{
                    text: "测试回车",                
                    handler: this.onEnterClick,
                    scope: this
                }]             
        });

    },
    keys:{
        key: 13,
        fn: function(){
          alert(this.form);//这里提示为undefined,同样是this.form,为何onEnterClick有值,这里却为空呢?
        }
    },
    onEnterClick: function(){    
      alert(this.form);//这里提示为对象[object Object]
        
    }
});


简单的再说明下,form已作为一个属性的了,理论上说,this.form肯定是一个对象的了,但,奇怪的是,按回车时,this.form并不为一个对象,但点击测试回车按钮,要正常,怎么会这样呢?应该要么都有,要么都没有啊?有请Ext高人指教。

作者: xzy88   发布时间: 2011-01-05

keys:{
  key: 13,
  fn: function(){
  alert(this.form);//这里提示为undefined,同样是this.form,为何onEnterClick有值,这里却为空呢?
  }
  },
  onEnterClick: function(){  
  alert(this.form);//这里提示为对象[object Object]
   
  }
});

你自己看啊 这2个 事件的定义 那里一样了

作者: KK3K2005   发布时间: 2011-01-05

JScript code
 keys:{
        key: 13,
        fn: function(){
          alert(this.form);//这里提示为undefined,同样是this.form,为何onEnterClick有值,这里却为空呢?
        },
        scope: this//加个作用域,上面的this指向的不是_window
    },

作者: IBM_hoojo   发布时间: 2011-01-05

引用 1 楼 kk3k2005 的回复:
keys:{
key: 13,
fn: function(){
alert(this.form);//这里提示为undefined,同样是this.form,为何onEnterClick有值,这里却为空呢?
}
},
onEnterClick: function(){
alert(this.form);//这里提示为对象[object Object]
……

不明白,事实定义一样不一样跟有没this.form什么关系?
那我想,按回车键时,跟点击回车测试按钮,都要得到this.form的值,怎么办?
总不能叫我在fn中,再赋值下啊。这样this.form=new MyFormPanel();???感觉很别扭这样。

作者: xzy88   发布时间: 2011-01-05

引用 2 楼 ibm_hoojo 的回复:
JScript code
keys:{
key: 13,
fn: function(){
alert(this.form);//这里提示为undefined,同样是this.form,为何onEnterClick有值,这里却为空呢?
},
scope: this//加个作用域,上面的this指向的不是……

加了,好像也没效果啊

作者: xzy88   发布时间: 2011-01-05

constructor: function(){
  var _this=this;
  _window.superclass.constructor.call(this, {
  title: "测试窗体",
  items: this.form,
  buttons:[{
  text: "测试回车",  
  handler: this.onEnterClick,
  scope: this
  }],
  keys:{
key: 13,
fn: function(){
alert(_this.form);
}  
  });

  },

初始化总拿到this了吧

// form: new MyFormPanel() 不过这里的定义方式不知道是不是你的本意

作者: KK3K2005   发布时间: 2011-01-05

引用 4 楼 xzy88 的回复:

引用 2 楼 ibm_hoojo 的回复:
JScript code
keys:{
key: 13,
fn: function(){
alert(this.form);//这里提示为undefined,同样是this.form,为何onEnterClick有值,这里却为空呢?
},
scope: this//加个作用域,上面的this指向的不是……

加了,好像也没效果啊


JScript code
scope: this//这个是画蛇添足吧,去掉试试

作者: p2227   发布时间: 2011-01-05

热门下载

更多