本帖最后由 xjl756425616 于 2012-02-28 09:10:35 编辑

解决方案 »

  1.   

    谷歌浏览器存在的,,我在想是否是写了parentNode的原因难道是var target = event.target|| event.srcElement;什么原理啊
      

  2.   

    浏览器兼容问题撒
    应该是谷歌里面有,IE里面没有,所以IE就报错了
      

  3.   

    你测试了这个event.target.parentNode
      

  4.   

    event.target.parentNode 报错的是这个。。你没测的也是这个
      

  5.   


    不是报不报错的问题了,感觉
    那么ie也不支持event.target的,,为什么var target = event.target|| event.srcElement;这么写就没错
      

  6.   


    不是报不报错的问题了,感觉
    那么ie也不支持event.target的,,为什么var target = event.target|| event.srcElement;这么写就没错
    [/Quote] var target = (event.target && event.target.parentNode) || event.srcElement.parentNode;
      

  7.   

     e = (e || window.event);
        var target = e.target || e.srcElement;
    if(target.parentNode && target.parentNode.tagName.toLowerCase()=='span')
      

  8.   

    因为IE没有event.target,所以在IE下typeof event.target = 'undefined',所有event.target的布尔值为false,而||运算符碰到前面是false时会取后面的表达式的值为运算结果,所以var target = event.target|| event.srcElement;这么写没错。
    而正如上面所说的,event.target不存在,你调用一个不存在的对象的属性,浏览器明显报错的亲,如果还不明白自己搜下逻辑运算符||的用法吧。
    正确用法是var target = event.target || event.srcElement, parent = target.parentNode;