jquery ready函数没有执行

时间:2010-11-12 16:58:24

标签: javascript jquery onload document-ready

我在jquery $(document).ready函数中放置了一些javascript。它在URL中搜索锚点,然后运行单独的函数来显示匹配的内容。

如果我在if语句的某处放置一个警告,代码就会执行,但不会以其他方式运行。我已将所有锚名称存储在名为'anchorNameList'的数组中,并检查URL中的锚是否存在。

我只希望函数在初始页面加载时运行,因此我将'currentAnchor'的默认值设置为1000并在每次迭代时更改它。

        if (currentAnchor == 1000 && document.location.hash.substring(1)) {
        var checkForThisAnchor = document.location.hash.substring(1);
        for (var j=0; j < anchorNameList.length; j++) {
            if (anchorNameList[j] == checkForThisAnchor) {
                expandMe(j);
            }
        }
    }

2 个答案:

答案 0 :(得分:0)

根据我的经验,当JavaScript问题通过在某处添加无害的alert()来神奇地修复自身时,问题的根源通常是异步请求。

在非警报情况下,异步请求尚未完成。但是通过添加警报,它有机会完成,因此允许您的代码行进不同的代码路径,而不是完全异步调用的响应。

答案 1 :(得分:0)

我将onload事件从jQuery的document.ready切换到window.ready。它在大约30%的时间内正常工作,所以这绝对是一个时间问题。它似乎是页面上的主要JavaScript函数,即检索列表项,运行缓慢。我只是将整个扩展功能移到了列表检索功能的末尾,所以它只是线性运行。