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