【问题标题】:jquery $( document ).ready function stopped workingjquery $( document ).ready 函数停止工作
【发布时间】:2014-04-11 12:27:50
【问题描述】:

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

除了对 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(){" 然后移动到 "};" (ready(function) 的退出点)。

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

示例页面在这里

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

如果有人能帮我解决这个问题,我将不胜感激

谢谢

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

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

希望我把问题改到可以接受的水平

【问题讨论】:

  • 总是在问题中发布所有相关代码和标记in,不要只是链接。链接失效了,人们不应该离开网站来帮助你。
  • 您的示例页面已关闭
  • 您遇到什么错误?
  • 你为什么要把doc ready放在initialize()函数中。
  • @putvande - 可能是主机有问题。它现在启动并运行,没有错误只是跳过代码段

标签: javascript jquery wordpress function


【解决方案1】:

好吧,需要注意的一件事是,如果未定义 lat_nearby(它不在您提供的 sn-p 中),当您尝试在 Array 声明中调用 '.length' 属性时,执行将停止。

【讨论】:

  • 所有变量都被声明。这方面没有问题。脚本执行甚至没有到达这一行。
【解决方案2】:

经过大量故障排除后,问题已在一定程度上被隔离。

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

插件已被禁用,上面的脚本按预期工作。如果有任何有用的附加信息会在这里更新

【讨论】:

  • 这会很奇怪,因为jQuery(document).ready 可以被多次调用,并且这些操作将被链接起来,而不是被覆盖。
【解决方案3】:
$(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();

【讨论】:

  • 谢谢,我会试试这个
猜你喜欢
  • 1970-01-01
  • 2017-03-26
  • 2012-02-17
  • 1970-01-01
  • 2011-08-30
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
相关资源
最近更新 更多