我有一个带有点击事件的图像地图,在其上放置一个标记:
$('#map').on('click', function(e) {
alert(e.target.id); // this is the image inside 'map'
alert(e.currentTarget.id); // this is the 'map'
var pin = $('<div class="pin"></div>');
$('#map_wrapper').append(pin);
})
然后单击该图钉将打开一个带有文本输入和保存按钮的PNotify弹出窗口,单击该按钮将输入的文本附加到包装器:
$('#map_wrapper').on('click', '.pin', function(e) {
var id = this.id;
show_notice(id);
});
function show_notice(id) {
notice = new PNotify({
text: form,
...
});
$('form [name=save]').off('click').on('click', function(e) {
e.preventDefault();
e.stopImmediatePropagation();
e.stopPropagation();
$('#' + id).append('<p class="pin-text hidden">' + $.trim($('#pin_text').val()) + '</p>');
notice.remove();
});
}
我无法弄清楚是什么原因导致在“保存”按钮单击时将新引脚添加(加倍)到地图。我警告'e.target.id'和'e.currentTarget.id' - 点击地图后弹出这些,但是在点击通知表单上的保存按钮后没有任何反应(没有警报)但是引脚实际附加到地图...
如何停止保存点击向地图添加新图钉?
[UPDATE]
经过进一步调查后,会发生什么:
没有代码可以做到这一点。引脚附加到地图的唯一两个地方是地图图像加载功能和地图点击功能 - 就是这样!
PNotify按钮如何添加引脚?