IE< 9显示“未找到成员”

时间:2011-11-03 10:07:26

标签: javascript jquery internet-explorer-8 internet-explorer-7

我看到“SCRIPT3:未找到会员”。 IE中的错误< 9。查看各个位置(例如,Member not found IE error (IE 6, 7, 8, 9)),它似乎发生在setTimeout.hover()部分。

我按照了中的步骤但仍然遇到了同样的问题。我会很乐意帮助你。

也可能发生在change() fn。

内的地方

我已将整个代码放在:http://jsfiddle.net/f4tZQ/

2 个答案:

答案 0 :(得分:8)

对于那些不想修改jQuery源的人来说......(为了上帝的爱,不要这样做)

当发射自定义事件时,这发生在< 9中。如果您在事件到达崩溃点之前有权访问该事件,只需沿着原始事件链向下移动并设置最后一个= {};

以下代码适用于您依赖jQuery处理链中某处的事件处理程序返回值(false)。如果要在此处取消事件,请参阅注释 - 在try / catch块中包含对e.stopPropagation()的调用

var handleAndFire = function(e) {
 var ev = new $.Event('stack.overflow');

    //you may have to debug and manually inspect to see how 
    //deep the originalEvents go
    //or you could write your own function to traverse 
    //depth first and find it automatically, I'm lazy.
    e.originalEvent.originalEvent = {}; //fix for ie < 9
    ev.originalEvent = e;
    $(document).trigger(ev);    
}
$(document).click(handleAndFire);

答案 1 :(得分:6)

经过一段时间的搜索,我似乎受到了jQuery bug的影响。在“comment:4”之后,更改了jQuery-1.6.2.js文件,第3172行解决了这个问题。

if (typeof e.cancelBubble !== 'unknown') { e.cancelBubble = true; } 
  

不要问为什么,但它有效......出于某种原因jQuery或IE返回   这里“未知”而不是“未定义”。

获取:

来源:http://bugs.jquery.com/ticket/10004