Jquery'On'是否适用于使用element.innerHtml复制的元素?

时间:2013-03-06 08:55:38

标签: jquery

在我们的网站上,我们有一个'内容'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的方式阻止它工作?

2 个答案:

答案 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());
});