我在IE中遇到一些jQuery的问题。没有错误出现在控制台中,因此调试起来非常困难。
我会告诉你脚本的工作原理
的index.php
< div id ='tableholder'> [article.php第一次被PHP include()加载到这个div中< / 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>
因此,当我点击刷新按钮(图片)时,它会重新加载桌面div - 这在Google Chrome,Safari,Firefox上运行正常 - 但在IE8上它只能运行一次。之后就好像jQuery内部处于休眠状态。我已经尝试在article.php中再次添加jQuery,但这似乎也没有解决它。
有什么想法吗?
答案 0 :(得分:3)
尝试使用click()
更改live()
并在index.php中移动该脚本
当您通过ajax加载内容时,某些内容中的IE8可能不会触发DOMready事件(在article.php
内),因此您的函数未被执行
这样做,live()
方法是必要的,因为如果按钮在文章中,click()
方法将在第一个DOMready事件中仅绑定一次函数。
当通过ajax加载页面时,您更改了#fresh
元素,因此您将丢失之前对该元素的引用。 live()
将允许您始终将事件绑定到元素$('#fresh')
,如果它稍后重新注入文档中
答案 1 :(得分:1)
您可以使用.post()
代替.load()
。正如我所见,.load()
在Internet Explorer 8中为我工作。如果更新了,您还可以检查一次jquery版本。
确保.click()
正常运行。你能说出浏览器抛出的错误吗?