在我们的网站上,我们有一个'内容'div,其中粘贴了html。
例如:content.innerHtml = 'huge pile of html with divs and tables'
现在我想在粘贴的其中一个元素上附加一个jquery事件处理程序,所以我尝试了这个:
$(document).ready(function () {
// Handler for .ready() called.
alert('111');
$("#PersonalMessageTemplateDropDownModels input").on("click", function (event) {
alert($(this).text());
});
});
我收到警报,以便调用代码。 输入元素在元素下面/内部有5个级别,ID为“PersonalMessageTemplateDropDownModels”
但是,没有调用alert($(this).text());
。
这是否可行,或者是html进入dom的方式阻止它工作?
答案 0 :(得分:4)
将事件委托给身份为PersonalMessageTemplateDropDownModels
的元素,并使用on()为其输入类型的后代使用标记选择器。
$("#PersonalMessageTemplateDropDownModels").on("click", "input", function (event) {
alert($(this).text());
});
如果要委派事件的元素(父级)未知或不存在,则可以使用文档。
$(docuement).on("click", "#PersonalMessageTemplateDropDownModels input", function (event) {
alert($(this).text());
});
答案 1 :(得分:1)
试试这个我有同样的问题,但这段代码解决了我。
$(document).on("click","#PersonalMessageTemplateDropDownModels input", function (event) {
alert($(this).text());
});