我不知道为什么,但这段代码使得IE9和Safari崩溃,并且在Opera中根本不起作用。
$('#contentPage').on('DOMSubtreeModified', function(){
if($(".iframey[date-current]").length){
$(".iframey:not(.hidden)").prevUntil("iframe").addClass('smaller');
}});
如何使此代码适用于所有浏览器?
--- ---编辑
jsfiddle中的代码
使用chrome和firefox进行工作
答案 0 :(得分:2)
您正在dom修改的事件处理程序中修改dom,您应该检查修改是否是由处理程序中的代码引起的,以防止无限循环。
另外
警告! DOMSubtreeModified事件类型在本规范中定义,以供参考和完整,但此规范不推荐使用此事件类型。
http://www.w3.org/TR/DOM-Level-3-Events/#event-type-DOMSubtreeModified
答案 1 :(得分:0)
@Musa说的是正确的。有一个无限循环。你需要在DOMSubtreeModified
处理它吗?你不能只是在点击事件中完成工作吗?这似乎表现得一样:
$(".onePost").live("click", function() {
$(".onePost").removeClass('smaller');
$("iframe")
.addClass('hidden')
.removeAttr('src')
.removeAttr('date-current');
$(this).nextAll("iframe:eq(0)")
.removeClass('hidden')
.removeAttr('style')
.attr({src: $(this).data('href')})
.attr('date-current', 'here');
if($(".iframey[date-current]").length){
$(".iframey:not(.hidden)").prevUntil(".iframey").addClass('smaller');
}
});