2014-11-05 46 views
0

所以我有一个菜单栏和内容区域的简单网站。当我单击菜单栏中的一个按钮时,它应该在内容区域的图形元素上执行快速淡入转换,并将外部内容加载到div中。.load在Internet Explorer中导致整个页面刷新?

$("#button1").click(function(){ 
$(".contentdivs").fadeIn(1000); 
$(".content").load("external.html"); 
}); 

这个工程完全按照预期在Chrome,Safari和Firefox,但不是在IE浏览器。

在资源管理器中,单击#button1将触发.Fadein和.load(我可以看到转换和外部数据非常简单地呈现),但整个页面刷新,外部内容被卸载。

任何想法为什么发生这种情况,以及如何解决它?

+0

Something * else *正在导致页面重新加载。可能是正在执行的“external.html”中的脚本。请参阅http://api.jquery.com/load/ – user2864740 2014-11-05 00:07:19

+0

大多数情况下,代码中的某些内容会失败,导致点击处理程序失败,从而导致IE执行按钮的默认行为 - 即提交其包含的表单,从而导致重新加载。检查JS错误。 – 2014-11-05 00:09:54

+0

考虑制作一个这个问题的小回放。这将使我们能够更好地协助您调试行为。 – Sampson 2014-11-05 00:11:03

回答

1

按钮是否为定位标记?您可能需要防止点击事件的默认操作,并在发生锚点父按钮时停止冒泡事件:

$("#button1").click(function(e){ 
    e.preventDefault(); 
    e.stopPropagation(); 
    $(".contentdivs").fadeIn(1000); 
    $(".content").load("external.html"); 
}); 
+0

谢谢,这个伎俩! 为了将来的参考和我自己的启发,这是一个Internet Explorer太挑剔的案例,或其他浏览器的情况是宽容的? – 2014-11-05 18:33:51

+0

太棒了!很高兴我能帮上忙, – PeterKA 2014-11-05 18:35:16