感谢您的帮助。
我有一个功能。在这个函数中,我创建了两个按钮并分配了两个id。
var content =
'<div>
'<div id="stationPopUpbtn">' +
'<button id="createWave_updateStation" onclick="updateStationContent('+feature+')">Änderungen speichern</button>'+
'<button id="createWave_deleteStation" onclick="deleteFeature('+feature+')">Station löschen</button>'+
'</div>'+
'</div>';
稍后我想做同样的功能:
$('#_updateStation').bind('click', function(){ // stuff });
但它不起作用。内容将作为弹出窗口(OpenLayers)的一部分添加,然后将其添加到地图中。
var popup = new OpenLayers.Popup.FramedCloud(
feature.id+"_popup",
feature.geometry.getBounds().getCenterLonLat(),
new OpenLayers.Size(250, 100),
content,
null, // anchor
true, // closeBox exists
//closeBoxCallback
function(){
feature.style.pointRadius = 20;
map.removePopup(feature.popup);
}
);
编辑:
$(document).append(content);
//map.addControl(selectControl);
//selectControl.activate();
$(document).on('click', '#createWave_updateStation' ,function(){
console.log("TES");
});
$('#create_stationPopup').popup('open');
答案 0 :(得分:2)
将事件委托给静态父容器。这样做会在匹配子节点后附加事件监听器。
$(document).on('click', '#_updateStation',function(){ // stuff }); version >= 1.7
我将它委托给文档,因为我不确定你的HTML结构..
最好用Static Container..
从jQuery版本开始, 1.7 .on()
是.bind()
如果您使用的版本低于版本 1.7 ,则可以使用.delegate
附加活动
$(document).delegate('#_updateStation' ,'click',function(){ // stuff });
// version < 1.7