0

在我们的网站中,我们有一个“内容”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());
    });

});

我收到警报,因此调用了该代码。输入元素位于 ID 为“PersonalMessageTemplateDropDownModels”的元素下方/内部的 5 个级别

但是,没有alert($(this).text());被调用。

这应该有效,还是将 html 输入到 dom 的方式阻止了它的工作?

4

2 回答 2

4

将事件委托给具有 id 的元素,PersonalMessageTemplateDropDownModels并使用标记选择器为其输入类型的后代使用on()

$("#PersonalMessageTemplateDropDownModels").on("click", "input", function (event) {
    alert($(this).text());
});

如果要将事件委托给的元素(父级)未知或不存在,则可以改用 document。

$(docuement).on("click", "#PersonalMessageTemplateDropDownModels input", function (event)    {
    alert($(this).text());
});
于 2013-03-06T08:56:40.057 回答
1

试试这个我有同样的问题,但这段代码解决了我。

$(document).on("click","#PersonalMessageTemplateDropDownModels input", function (event) {
    alert($(this).text());
});
于 2013-03-06T09:05:36.163 回答