gpt4 book ai didi

jquery - Internet Explorer 中的 jquery .load() 问题 - 在其他浏览器中工作正常

转载 作者:行者123 更新时间:2023-12-01 03:22:06 25 4
gpt4 key购买 nike

我在 IE 中使用 jQuery 时遇到了一些问题。控制台中没有显示任何错误,因此很难调试。

我将向您介绍该脚本的工作原理

Index.php

< div id='tableholder' > [article.php gets loaded into this div by a PHP include() the first time around] < / div >

所以在article.php中我有一个刷新按钮: < img id='fresh' src='whatever.jpg'/>

我在article.php的顶部还有以下代码:

<script type='text/javascript'>
$(document).ready(function()
{

/*-------------------------------------------------------------------------------*/
// REFRESH BUTTON
$('#fresh').click(function() {
$('#loadergif').show(); //show loader gif until load complete
$("#tableholder").load('article.php?site=whatever','');
$('#loadergif').hide(); //hide loader gif when load is complete
});
/*-------------------------------------------------------------------------------*/
});
</script>

因此,当我单击刷新按钮(图像)时,它会重新加载 tableholder div - 这在 Google Chrome、Safari、Firefox 上运行良好 - 但在 IE8 上它只能运行一次。之后,内部的 jQuery 就好像进入休眠状态。我尝试在article.php 中再次添加jQuery,但这似乎也无法解决问题。

有什么想法吗?

最佳答案

尝试用 live() 更改 click() 并将该脚本移动到您的 index.php

在某些情况下,当您通过 ajax 加载内容时,IE8 可能不会触发 DOMready 事件(在 article.php 内),因此您的函数不会执行

这样做时,live() 方法是必要的,因为如果按钮位于文章内,click() 方法将仅在第一个 DOMready 事件时绑定(bind)函数一次。

当通过 ajax 加载页面时,您会更改 #fresh 元素,这样您就会丢失之前对该元素的引用。 live() 将允许您始终将事件绑定(bind)到元素 $('#fresh'),即使稍后将其重新注入(inject)到文档中

关于jquery - Internet Explorer 中的 jquery .load() 问题 - 在其他浏览器中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8820422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com