2012-01-11 132 views
2

我在IE中遇到了一些问题。没有错误显示在控制台中,因此调试非常困难。Internet Explorer中的jquery .load()问题 - 在其他浏览器中正常工作

我给你的脚本是如何工作

的index.php

< DIV ID = 'tableholder'>内幕[article.php获得由加载到这个div PHP包括()首次周围] </DIV>

所以article.php内我有一个用于刷新按钮: < IMG ID = '新鲜' 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 - 这在谷歌浏览器,Safari浏览器,Firefox的工作正常 - 但在IE8上它只能工作一次。之后,就好像jQuery内部处于休眠状态。我已经尝试在article.php中再次添加jQuery,但似乎并没有解决它。

任何想法?

+0

你的jQuery版本是最新的吗? – Jeffrey 2012-01-11 13:55:23

+0

它的版本是1.7.0 – TheDavil 2012-01-11 17:16:56

回答

1

可以使用.post()而不是使用​​。正如我所看到的,​​虽然在Internet Explorer 8中为我工作。你也可以检查你的jQuery版本一次,如果这是更新。

确保.click()工作正常。你能告诉浏览器抛出的错误吗?

+0

谢谢,但如前所述,在IE控制台中没有任何错误抛出。 – TheDavil 2012-01-11 17:07:05

+0

因此,在这种情况下,您可以使用.post()。如果你使用这个,你能告诉我吗? – 2012-01-12 11:31:12

+0

我不确定你的意思,但我会做一些单独的测试使用.post() - 谢谢 – TheDavil 2012-01-12 16:35:21

3

试图改变click()live()和移动该脚本在您的index.php

大概IE8在一些circustances不火的domready中的事件(内article.php)当您通过AJAX加载内容,所以你的功能不执行

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

当通过ajax加载页面时,您可以更改#fresh元素,以免丢失之前对该元素的引用。 live()将让你总是一个事件绑定到元素$('#fresh'),也如果它以后重新注入文件

+0

谢谢Fabrizio。说实话是有道理的。我原本是在index.php中,但有其他问题。我会想象live()会帮助我。稍后再测试并更新这个问题。 – TheDavil 2012-01-11 17:07:46

+0

嗯,作为jQuery 1.7,.live()已被弃用。显然我应该使用.on()? – TheDavil 2012-01-12 16:34:11

+0

是的,使用版本1.7+上()是首选 – fcalderan 2012-01-12 17:08:42

相关问题