【发布时间】:2015-08-26 19:23:15
【问题描述】:
我正在构建自己的个人网站(以及我的第一个网页),但在尝试显示谷歌地图时遇到了一些麻烦。
首先,我将尝试解释我的情况。我的网页有四个链接,用于加载 div 中每个部分的 HTML 代码。因为我不想每次点击链接时都刷新我的网页,所以 HTML 代码是通过 AJAX 请求接收的。单击名为“联系我”的部分时,我调用 initialize 方法将地图加载到一个 div 中,该 div 是在通过 AJAX 接收的新 HTML 代码中创建的。当然,在收到 HTML 代码后,我会调用 initialize。
一切似乎都很好,但只有当我第一次点击链接时才会这样做。当我这样做时,我可以看到地图;但是当我转到另一个部分然后再次单击“联系我”时,我看到了 div,但地图不见了:
http://s8.postimg.org/9rllxtxed/map_error.jpg // 我还没有足够的声望来发布图片。
这是初始化函数:
function initialize() {
var target_div = document.getElementById("map"); //This is the ID of the div created on the HTML code recieved through AJAX.
var mapOptions = {
center: new google.maps.LatLng(65.6516152,-34.7739923),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(target_div,mapOptions); //*map* is a global variable (one of my many tries to resolve it)
}
这是调用 AJAX 请求和 initialize 以在名为 reciever_div 的 div 中显示内容的函数:
function open_section(clicked_link) {
if (actual_link != null){
actual_link = clicked_link;
reciever_div.fadeOut(750,function(){
reciever_div.html('');
$.ajax({
url: 'textos/'+clicked_link+'.txt',
success: function (recieved_file) {
reciever_div.html(recieved_file);
if (clicked_link == 'contactme') {
initialize();
}
reciever_div.fadeIn(750);
}
});
});
}
else{
actual_link = clicked_link;
$.ajax({
url: 'textos/'+ clicked_link + '.txt',
success: function(recieved_file){
reciever_div.html(recieved_file);
if (clicked_link == 'contactme') {
console.log(clicked_link);
initialize();
}
reciever_div.fadeIn(1500);
}
})
}
}
您知道为什么会发生这种情况,或者有更好的方法来实现吗?我是一个菜鸟,我不知道我是否对 ajax 请求、css 或什么要求太多。
非常感谢!
【问题讨论】:
-
javascript 控制台是否有任何错误(Te da algún error en la consola de Chrome?También dale un ojo a las peticiones en la ventana Network)
-
控制台没有错误,我不熟悉chrome上的网络窗口,但我没有看到任何错误或警告。
-
这是一个实时站点...你能给我网址吗(así puedo ver los errores de manera específica, soy de Chile btw )
-
De momento no está online ni tengo modo de subirlo a un servidor, trabajo en local : (
-
试试jsfiddle.net (Maquetea tu código ahí, lo guardas y posteas el link, asi podemos reproducir el error)。
标签: javascript css ajax google-maps