【问题标题】:.load causing total page refresh in Internet Explorer?.load 导致 Internet Explorer 中的总页面刷新?
【发布时间】:2014-11-05 08:20:48
【问题描述】:

所以我有一个带有菜单栏和内容区的简单网站。当我单击菜单栏中的某个按钮时,它应该对内容区域的图形元素进行快速淡入过渡,并将外部内容加载到 div 中。

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

这在 Chrome、Safari 和 Firefox 中完全符合预期,但在 Internet Explorer 中则不然。

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

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

【问题讨论】:

  • 某些 else 导致页面重新加载。可能正在执行的“external.html”中的脚本。见api.jquery.com/load
  • 您的代码很可能出现了问题,导致点击处理程序失败,导致 IE 对按钮执行默认行为 - 即提交其包含的表单,从而导致重新加载。检查 JS 错误。
  • 考虑对这个问题做一个小的复制。这将使我们能够更好地帮助您调试行为。

标签: javascript jquery internet-explorer


【解决方案1】:

按钮是锚标记吗?您可能需要阻止 click 事件的默认操作并阻止事件冒泡,以防按钮有锚父级:

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

【讨论】:

  • 谢谢你,成功了!为了将来参考和我自己的启发,这是 Internet Explorer 过于挑剔的情况,还是其他浏览器过于宽容的情况?
  • 太棒了!很高兴我能帮上忙,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多