我有kendo窗口,我正在动态地向kendo窗口添加内容。 内容有一个按钮,我想将点击事件附加到该按钮。 jQuery能够从内容中找到按钮,附加click事件但是click事件永远不会被触发
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);
});
答案 0 :(得分:2)
您需要更改:
button.click(function(){
alert("this is test");
})
到
$('#window').on('click', 'button', function(){
alert("this is test");
})
正如您所提到的,元素是动态创建的,因此它不是浏览器dom结构的一部分,因此无法使用jQuery进行选择。使用上面的代码,jQuery监听#window
元素内dom结构的任何更改,这样您就可以选择任何动态创建的元素。