添加事件侦听器以动态添加html元素

时间:2016-10-04 05:16:13

标签: jquery event-handling

我在向动态添加的html元素添加事件侦听器时遇到问题。

场景是一些“形式”的形式。存储在数据库中并顺序显示给用户。每次显示新表单时,都会将事件处理程序添加到新表单中。即对儿童元素。每个'形式的html元素的ID都相同。

第一种形式的一切正常,但是当添加第二种形式时,即使添加了事件处理程序,它们也不会触发。

我尝试过使用.click,.on。off,.addEventListener .removeEventListener等无数的排列,但似乎无法让它工作。

我使用的代码是:

            //replace innerHTML             
            $( "#mob_html" ).off();                         //remove previous event listeners
            $( "#mob_html" ).remove();                          //remove html element
            $(form.html_str).insertAfter( "#event_hdr_div" );   // add new html element with form html stored in database

            // add event handler
            $('#'+child_id_1).click(function () {
                if (perm_fg==true) {
                    open();
                }
            });
            $('#'+child_id_1).click(function () {
                if (perm_fg==true) {
                    open();
                }
            });

任何建议都非常感谢!

2 个答案:

答案 0 :(得分:0)

选择文档对象

$(document).on('click', '.some-class', function() {
    // ...
});

答案 1 :(得分:0)

在on()函数的帮助下,您可以绑定动态添加的元素,但请确保使用最新版本的jquery,因为早期版本的jquery可能不支持它。