我有这个样本小提琴页:http://jsfiddle.net/MarkSchultheiss/sPDSZ/的jQuery事件停止工作或崩溃,IE
该网页上有四个活动经理:其中两个是实际拍摄的每两个事件。
两个处理删除按钮上的鼠标事件突出显示/删除删除按钮祖先上的突出显示。
单击删除按钮可删除突出显示的祖先。
点击添加按钮,使用jQuery克隆添加第一组的副本,所有克隆的事件,数据和内容。
在IE8中,它工作正常,即使在兼容模式。但是,在IE6中,添加,删除和鼠标悬停事件停止发生,添加多个组,然后删除一些,然后添加更多等等(注意不要删除根组)。并非所有元素都会丢失事件,但会继续使用最终会降级为除了添加事件之外的任何工作。
任何想法如何解决什么似乎是一个jQuery IE6组合中的错误?
注意:在原始页面中,我提取了这个简单的示例,它在某些情况下会使页面上的浏览器崩溃。
背景:最初有.delegate,每次崩溃,改为“on()”,现在只是部分时间崩溃。
客户端需要使用IE6,所以我没有选择。 :(
编辑:有什么是事件管理,在IE6不同点在于,我可以做不同的事情,以避免任何可能影响这里
大胆猜测:尝试'.closest( 'wrapperRow')'找到你的目标容器,而不是链接的'.parent()'调用。我记得有IE6的DOM遍历和文本节点的问题... – bfavaretto 2011-12-21 16:21:44
我试过你的.closest的建议http://jsfiddle.net/MarkSchultheiss/sPDSZ/9/和父母Until http://jsfiddle.net/MarkSchultheiss/sPDSZ/8 /,但这两个事件管理器在多个组上重复添加/删除后,都会停止IE6的工作。 – 2011-12-21 16:39:16
克隆模板行时,我也会尝试'.clone(false)'。看起来你不需要克隆事件处理程序,因为它们被委托给'#wrapperRows'。这*可能*帮助IE6 ... – bfavaretto 2011-12-21 16:52:45