将函数绑定到新创建的元素

时间:2012-11-15 23:11:23

标签: javascript jquery

感谢您的帮助。

我有一个功能。在这个函数中,我创建了两个按钮并分配了两个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');

1 个答案:

答案 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
相关问题