添加单击事件以动态添加按钮到kendo窗口内容

时间:2017-05-30 20:43:36

标签: javascript jquery kendo-window

我有kendo窗口,我正在动态地向kendo窗口添加内容。 内容有一个按钮,我想将点击事件附加到该按钮。 jQuery能够从内容中找到按钮,附加click事件但是click事件永远不会被触发

JSFiddle

HTML

<div id="example">
  <div id="window">     
   </div> 
</div>

JQuery的

          $(document).ready(function() {                 
                    // in reality this contnet will be returned from ajax call
                    var dynamicContent  ="<div><button id='btn' type='button'>Click Me</button></div>"
                    var myWindow = $("#window")
                    var button = $(dynamicContent).find("#btn");

                    // show number of buttons found.                    
                    alert("found " + button.length + " button")

                    // attach click event to button
                                        button.click(function(){
                      alert("this is test");                      
                    })

                    myWindow.kendoWindow({
                        width: "600px",
                        height:"200px",
                        title: "My Window"
                    }).data("kendoWindow").center().open().content(dynamicContent);
                });

1 个答案:

答案 0 :(得分:2)

您需要更改:

button.click(function(){
  alert("this is test");                      
})

$('#window').on('click', 'button', function(){
  alert("this is test");                      
})

正如您所提到的,元素是动态创建的,因此它不是浏览器dom结构的一部分,因此无法使用jQuery进行选择。使用上面的代码,jQuery监听#window元素内dom结构的任何更改,这样您就可以选择任何动态创建的元素。