我一直在尝试为使用jQuery扩展名$ .goMap创建的地图上的每个标记添加一个点击侦听器。
这就是我将所有标记加载到地图中的方法:
$.getJSON('get_markers.php', function(data) {
$.each(data, function(pair) {
id = data[pair]['id'];
$.goMap.createMarker({
latitude: data[pair]['lat'],
longitude: data[pair]['lng'],
draggable: false,
html: {
ajax: 'marker_description.php?q=' + id,
content: 'loading...'
}
});
});
});
我查看了HTML,看看我是否可以找出标记的id或类,然后使用jQuery将点击监听器附加到所有标记,但是在我的html标记中找不到它们。
答案 0 :(得分:0)
我通过在创建它们之后为for循环中的每个标记添加一个监听器来解决这个问题。我为标记添加了一个id属性,以便创建监听器。
$.getJSON('get_markers.php', function(data) {
$.each(data, function(pair) {
var id = data[pair]['id'];
$.goMap.createMarker({
latitude: data[pair]['lat'],
longitude: data[pair]['lng'],
draggable: false,
id: id
/*html: {
ajax: 'marker_description.php?q=' + id,
content: 'loading...'
}*/
});
$.goMap.createListener({type:'marker', marker:id}, 'click', function() {
$.ajax({
url: "show_post.php?q="+id,
success: function(html){
$("#results").html(html);
}
});
});
});
});
这会伤害表现吗?不确定。
答案 1 :(得分:-1)
$.goMap.createListener({type:'marker', marker:'testMarker'}, 'click', function() {
console.log('marker click');
});