在单击使用 for 循环创建的传单标记时给出操作
Giving actions on click of leaflet markers created using for loop
我试图将ajax函数调用作为对单击map中标记的响应。但是链接不起作用(可能是因为)在单击时,循环不再运行。
法典:
<script>
function load_map_module(query) {
markers.clearLayers();
$.ajax({
url: '/load-map/',
type: 'get',
data: {'key':query.key, 'id':query.id},
dataType: 'json',
async: false,
success: function(d) {
res = d.res
if (res.length > 0){
for(i=0; i<res.length; i++) {
var marker = L.marker(new L.LatLng(res[i].latitiude, res[i].longitude), {icon: pinkicon, zIndexOffset:1000, riseOnHover:true, riseOffset:1000});
marker.bindPopup(res[i].name).openPopup();
markers.addLayer(marker);
temp_popup = (new L.Popup())
.setLatLng(new L.LatLng(res[i].latitiude, res[i].longitude))
.setContent("<span style='cursor:pointer;' <a href='#'> onclick="return load_map_module(({'key':'res.key', 'id':{{res.id}}}))">Hiii</a></span>");
.openOn(map);
marker_list.push(marker);
latlng_list.push(new L.LatLng(res[i].latitiude, res[i].longitude));
}
}
}
});
map.addLayer(markers);
return true;
}
</script>
弹出窗口
的内容 HTML 无效,span
的开始标记未正确关闭,并且您打开a
标记关闭了两次,一次是在 onclick 属性之前。此外,您在onclick处理程序中的函数调用完全错误,这不是连接字符串和变量的方法,并且您混合了双引号和单引号:
.setContent("<span style='cursor:pointer;' <a href='#'> onclick="return load_map_module(({'key':'res.key', 'id':{{res.id}}}))">Hiii</a></span>")
.setContent("<span style='cursor:pointer;'><a href='#' onclick='return load_map_module({key:" + res.key + ", id:" + res.id + "})'>Hiii</a></span>")
另外,为什么要将弹出声明放在括号中?
temp_popup = (new L.Popup())
这应该可以正常工作:
temp_popup = new L.Popup()
相关文章:
- 如何根据所选的下拉值更改表单值操作
- 使用attr()和数据标记操作css
- 表单的“操作”和“提交”:哪个先执行
- onClick 事件在表单标记中不起作用
- 如何在一个表单标记中验证多个字段集
- 如何在Rails表单标记中获取onclick属性
- 编辑gravityforms表单标记
- 使用jQuery可以禁用除滚动条之外的所有单击操作
- 在javascript中通过id获取元素,而页面上没有任何表单标记
- 验证不带表单标记的Html 5输入
- 如何使用复选框显示表单的更多选项并更改表单的操作属性
- jQuery 中的表单标记值
- Ajax 不使用表单标记
- 如何在表单标记中调用非表单元素
- 在表单标记(HTML,JavaScript)中插入
- 表单标记内没有 jquery 事件正常工作
- 在单击操作后隐藏元素
- 单用户操作触发两个事件-第二个事件不触发't触发器
- 将锚标记与表单的操作属性结合使用
- 如何在ejs中发布表单标记操作值