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

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

我按照中的步骤,但仍然遇到同样的问题。 我会很乐意提供任何帮助。

可能它也可能发生在change() fn内的位置。

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

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

这种情况发生在ie <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); 

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

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

不要问为什么,但它有效……出于某种原因,jQuery或IE在这里返回’unknown’而不是’undefined’。

从…获取 :

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