0

助けてくれてありがとう。

私には機能があります。この関数内で、2 つのボタンを作成し、2 つの 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');
4

1 に答える 1

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
于 2012-11-15T23:12:08.933 に答える