Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将函数绑定到新创建的元素_Javascript_Jquery - Fatal编程技术网

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

Javascript 将函数绑定到新创建的元素,javascript,jquery,Javascript,Jquery,谢谢你的帮助 我有一个功能。在这个函数中,我创建了两个按钮并分配了两个ID var content = '<div> '<div id="stationPopUpbtn">' + '<button id="createWave_updateStation" onclick="updateStationContent('+feature+')">Änderungen speichern</button>'+ '&l

谢谢你的帮助

我有一个功能。在这个函数中,我创建了两个按钮并分配了两个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>';
但它不起作用。内容作为弹出窗口(OpenLayers)的一部分添加,弹出窗口(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).on('click', '#_updateStation',function(){ // stuff }); version >= 1.7
我将其委托给文档,因为我不确定您的HTML结构

因此,最好用
静态容器替换文档。

同样从jQuery版本1.7
.on()
是优于
的首选方法

如果使用小于1.7版的版本,则可以使用
.delegate
附加事件

$(document).delegate('#_updateStation' ,'click',function(){ // stuff }); 
// version < 1.7
$(document).delegate('#_updateStation','click',function(){//stuff});
//版本<1.7

没有静态容器。一切都是“在飞行中”创造的。我在Openlayers中创建了一个弹出窗口,在这个弹出窗口中我有两个按钮。。下一个最好的办法是地图本身。但是我的代码在映射加载时不会执行..当然。。然后将其委托给$(document)或$('body')
这样做将在事件冒泡时将事件附加到元素中
-huh?@sushath:im on>1.8。。但是,您的第一个代码不起作用,它没有激发。您是否要将var内容附加到DOM中?您必须在将其添加到DOM后将其绑定。。因此,在添加元素之后。。然后绑定点击事件我就是这么做的。。但没有附加条款。我的内容是进入弹出窗口的html。但您尚未将其添加到dom中。。还是一根线。。因此,您必须以某种方式添加它,如element.html(content)。。或element.append(content)我只能像$(document.append(content)那样将其添加到文档中;然后,在该行之后是绑定click事件的位置
$(document).on('click', '#_updateStation',function(){ // stuff }); version >= 1.7
$(document).delegate('#_updateStation' ,'click',function(){ // stuff }); 
// version < 1.7