我在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;
这是几个星期前的工作代码。所有变量都已正确定义和填充。
此代码段的目的是使用“pop_text”参数中的文本填充div id“nearby-locations”。
当我用firebug调试页面时,java脚本执行uptp“$(document).ready(function(){”然后移动到“};”(就绪(函数)的退出点)。
这可能意味着jquery中的一些返回错误代码正在退出此函数。这不会产生错误,但不会使用动态创建的文本段填充网页。
示例页面在这里
http://amazinglanka.com/wp/hakgala-strict-nature-reserve/
如果有人可以通过这个并帮助我,我会非常感激
谢谢
* 我已根据用户的请求更新了问题,但这仍然不是一个功能齐全的代码,因为完整的代码很长,还有很多其他不相关的功能。我无法更改实时代码以使问题更加突出,因为这会破坏整个网站
不幸的是,在调试模式下了解加载给定帖子的问题的最佳方法。
希望我能将问题改为可接受的水平
答案 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函数由于与它的冲突而没有触发。
该插件已被禁用,上述脚本按预期工作。如果有任何有用的附加信息将在此处更新