jquery将事件绑定到新元素

时间:2014-11-09 15:01:36

标签: javascript jquery events triggers event-handling

JAVA SCRIPT

$(document).ready(function() {
     $(".group").click(groupFile);

     function groupFile(){
        alert('clicked!');
     }
});
function insert()

{
    $("body").append("<div class='group' ></div>");
}

HTML

<div class='group' >
</div>

<input type="button" value="insertNewElement" id="insert" onclick="insert()"/>

加载页面后,点击div.group效果很好并点击groupFile并提醒我。 但是在插入新的div.group。onclick div.group函数groupFile时无效? 请帮帮我

3 个答案:

答案 0 :(得分:3)

您可以使用jQuery on()方法将事件委托给静态祖先,如下所示:

$(document).ready(function() {
 $(document).on("click",".group",groupFile);
 function groupFile(){
    alert('clicked!');
 }
});

详细了解event delegation

答案 1 :(得分:0)

您应该将事件委托给BODY(或文档或“通常更好地与最近的静态父元素”)级别。使用.on(),传递selector param:

$('body').on('click', 'div.group', function(){
     //...
});

See explanation

答案 2 :(得分:0)

对于动态元素,您需要绑定到正文上的事件:

$("body").on("click", ".group", function(e){
    alert('clicked');
});