在我的Google Maps v3应用中,我正在创建标记并将它们放在地图上.对于每一个,我在'click'上添加一个事件监听器,这样我就可以在用户点击它时显示一个信息窗口.
我将我的标记保存在一个javascript数组中,并使用.setMap()在地图上显示/隐藏它们.在某些情况下,用户希望从地图中删除它们.在这种情况下,我执行marker.setMap(null),然后从我的数组中删除标记.
是否建议在标记上保留一系列事件侦听器,以便在删除标记时删除它们?或者,当从内存中删除侦听对象时,事件侦听器是否会从内存中删除?
从最终用户的角度来看,我认为这样做并不重要,但我很好奇,即使我删除了标记,事件监听器仍在内存中.我想尽可能整洁.
Google Places API现已普遍推出.我试图在jQuery中使用.ajax()调用来调用Google Places.我一直回来的错误是Uncaught SyntaxError:意外的令牌:
我正在使用jQuery 1.5.2.我也尝试了1.5.1,但结果相同.如果我能提供帮助,我宁愿不转向1.6.1.
从那以后我就把这样的ajax调用到其他API,但是我在使用Google Places时遇到了麻烦.以下是您可以使用的基本代码示例.您需要在Google控制台上提供自己的密钥(https://code.google.com/apis/console)
jQuery.noConflict();
jQuery(document).ready(function(){
var url = 'https://maps.googleapis.com/maps/api/place/search/json';
jQuery.ajax({
url: url,
dataType: 'jsonp',
type: 'GET',
data: {
location: '33.787794,-117.853111',
radius: 1000,
name: 'coffee',
key: 'your_key', // add your key here
sensor: 'false'
},
// on success
success: function(data, textStatus, jqXHR){
console.log(data);
},
// on failure
error: function (jqXHR, textStatus, errorThrown){
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
}
});
});
Run Code Online (Sandbox Code Playgroud)