我正在拖放到一个面板,它在IE8,Chrome和Firefox中运行良好,但对于Ie7我收到此错误 - " ' offsetWidth'是null或不是对象"
当我调试时,它指向以下代码,
getLocation: function (i) {
if (!this.isTypeOfDD(i))
{ return null }
if (i.getRegion)
{ return i.getRegion() }
var g = i.getEl(), m, d, c, o, n, p, a, k, h;
try { m = Ext.Element.getXY(g) }
catch (j) { }
if (!m) { return null }
d = m[0];
c = d + g.offsetWidth;
o = m[1];
n = o + g.offsetHeight;
p = o - i.padding[0];
a = c + i.padding[1];
k = n + i.padding[2];
h = d - i.padding[3];
return new Ext.util.Region(p, a, k, h)
}
专门针对g.offsetWidth,其中g也是未定义的,我的类型为" Ext.dd.DropZone"它有时只出现。我想把它弄出来。同时,如果有人有一些线索请与我分享。 提前谢谢
答案 0 :(得分:1)
我通过添加条件检查解决了这个问题。到目前为止工作正常。
getLocation: function (i) {
if (!this.isTypeOfDD(i))
{ return null }
if (i.getRegion)
{ return i.getRegion() }
var g = i.getEl(), m, d, c, o, n, p, a, k, h;
if(g!=null){
try { m = Ext.Element.getXY(g) }
catch (j) { }
if (!m) { return null }
d = m[0];
c = d + g.offsetWidth;
o = m[1];
n = o + g.offsetHeight;
p = o - i.padding[0];
a = c + i.padding[1];
k = n + i.padding[2];
h = d - i.padding[3];
return new Ext.util.Region(p, a, k, h)
}
}