我有一个用 javascript 定义的定位函数
var locID;
function locateMe()
{
if(locID > 0)
{
// i do a jquery post here
}
setTimeout(locateMe, 2000);
}
// my document ready function is here, and inside it, at the end of it
// i do this
locID = 0;
locateMe();
当我在 firefox 中测试此代码时,locateMe 函数每两秒调用一次,并且按预期工作。当我在 IE8 中测试代码时,该函数永远不会被调用(至少从我使用 IE 的开发人员工具看到的情况来看,它似乎永远不会被调用)
注意:在修改 locID 的“zone_row”类的单击事件处理程序中定义了代码。同样,在 Firefox 中,一切都按预期工作。奇怪的是,在 IE 中,当单击 zone_row 时,该函数将被调用一次。我可以在开发人员工具上以及通过该 jquery 帖子的操作结果看到这一点。
我认为 IE 有一些我还不熟悉的异常。我做错了什么?
编辑:更改“locateMe();”在 setTimeout 调用中定位我。
更新:添加更多我的代码(根据评论中的请求)以显示展示位置(尽管代码不比我的第一篇文章多多少)。
<script type="text/javascript">
var z_items;
var locID;
function locateMe()
{
if(locID > 0)
{
// my jquery post is here
}
setTimeout(locateMe, 2000);
}
$(document).ready(function()
{
// ... some click events and get requests here ...
locID = 0;
locateMe();
});
</script>
最佳答案
问题解决了。我从这篇文章中找到了另一个问题的答案:
Prevent browser caching of jQuery AJAX call result
添加 $.ajaxSetup({ cache: false });对于我的文档准备功能,它也解决了这个问题。看起来一直都是缓存问题。
关于javascript - 在 setTimeout 中调用自身的 javascript 函数的 IE8 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4902287/