jquery $(document).ready函数停止工作

时间:2014-04-11 12:27:51

标签: javascript jquery wordpress function

我在wordpress页面的$( document ).ready(function()函数中有一个initialize(),直到几天前才运行良好。突然间,我发现现在在火虫的帮助下这不起作用了。

除了稍微升级到WP模板之外,我没有对代码进行任何更改。

var found_record =0 ;
var lat_nearby = new Array();
var lon_nearby = new Array();
var loc_name_nearby = new Array();
var icon_type_nearby = new Array();
var post_id_nearby = new Array();
var in_list_nearby = new Array();
// some other parameters 

    function initialize() {
        genenrate_parameters();
        var mapProp = 
            {
            center:new google.maps.LatLng(lat1,lon1),
            zoom:zoom_level,
            mapTypeId:map_type
        };

        var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
        setMarkers(map);
        infowindow = new google.maps.InfoWindow({
                    content: "loading...",
                    maxWidth:"150"
        });
        //script below creates a SORTED list of sites near main site
        if(found_record==1) {
            var $ = jQuery;
            var max_records=50;     
            $( document ).ready(function() {
            //put the list to an array  
            var near_list = new Array(lat_nearby.length);
            for (var i = 0; i < lat_nearby.length; i++) {
                near_list[i] = new Array(7);
                near_list[i][0] = lat_nearby[i];
                near_list[i][1] = lon_nearby[i];
                near_list[i][2] = loc_name_nearby[i];
                near_list[i][3] = icon_type_nearby[i];
                near_list[i][4] = post_id_nearby[i];
                near_list[i][5] = gpsToKm (lat1,lon1,lat_nearby[i], lon_nearby[i]);
                near_list[i][6] = in_list_nearby[i];
                };
            // generate a html code block and populate pop_text parameter
            pop_text=pop_text+pop_text1+"</ul>\n";
            $( "#nearby-locations" ).append(pop_text);
            });     
        };  
    }

    function loadScript(){  
        var script = document.createElement("script");
        script.src = "http://maps.googleapis.com/maps/api/js?key=AIzaSyAU5dPIpTlKWqHJndusLV1UsiXGQ4iz1v4&sensor=true&callback=initialize"; document.body.appendChild(script);
    }

    window.onload = loadScript; 
  1. 这是几个星期前的工作代码。所有变量都已正确定义和填充。

  2. 此代码段的目的是使用“pop_text”参数中的文本填充div id“nearby-locations”。

  3. 当我用firebug调试页面时,java脚本执行uptp“$(document).ready(function(){”然后移动到“};”(就绪(函数)的退出点)。

  4. 这可能意味着jquery中的一些返回错误代码正在退出此函数。这不会产生错误,但不会使用动态创建的文本段填充网页。

  5. 示例页面在这里

    http://amazinglanka.com/wp/hakgala-strict-nature-reserve/

    如果有人可以通过这个并帮助我,我会非常感激

    谢谢

    * 我已根据用户的请求更新了问题,但这仍然不是一个功能齐全的代码,因为完整的代码很长,还有很多其他不相关的功能。我无法更改实时代码以使问题更加突出,因为这会破坏整个网站

    不幸的是,在调试模式下了解加载给定帖子的问题的最佳方法。

    希望我能将问题改为可接受的水平

3 个答案:

答案 0 :(得分:0)

$(function() {
   //place your code here
   console.log( "document loaded and ready" );

   var near_list = new Array(lat_nearby.length);
   for (var i = 0; i < lat_nearby.length; i++) {
        //...
   }
});

您不需要致电Initialize();

答案 1 :(得分:0)

嗯,有一点需要注意的是,如果没有定义lat_nearby(它不在您提供的代码段中),当您尝试调用&#39; .length&#39;时,执行将停止。数组声明中的属性。

答案 2 :(得分:0)

经过多次麻烦拍摄后,问题已被隔离到一定程度。

问题不在上面的脚本中,而是由于另一个插件也在jQuery中调用(document).ready(function()。上面的ready函数由于与它的冲突而没有触发。

该插件已被禁用,上述脚本按预期工作。如果有任何有用的附加信息将在此处更新