doc.on('mouseover', handleOver, null, {buffer:150});

 

    var el = Ext.get(name+'-link');
        var tid = 0, menu, doc = Ext.getDoc();

    var handleOver = function(e, t){
               
            if(t != el.dom && t != menu.dom && !e.within(el) && !e.within(menu)){
                hideMenu();
            }

        };

在handerOver 中遍历e 的属性的时候找到了 widthin 的函数体

function (E,F){

 var D = this[F?"getRelatedTarget":"getTarget"]();

return D&& Ext.fly(E).contents(D);

}

 原来 函数可以这样调用 this["getTarget"](); 

 在 handOver 中测试 alert(e["getTarget"]());果然 能调用。

另外 :

within 函数 里用到了ext.fly 那么var handleOver = function(e, t)中的“事件对象e“就不是浏览器中的那个“原生态事件对象”

 不知道是不是看到within 这个函数潜意识了产生恐惧了。还去查看函数体,还去看e到底是个什么对象,其实本来早就猜测是个 事件对象。还是不够自信,其实在10秒钟的时间内就应该完全看透这个函数。看到within的意思就应该立即猜测。

 

mozilla下的e.target   相当于   ie下的event.srcElement,

但细节上有区别,后者是返回一个html   element

而e.target返回的是个节点 

 

e.target.id = t.id =”bd“

 

 ,又看错一个字母。。。b 看成 ”h“