创建div后,jQuery附加一个单击处理程序

时间:2013-11-01 15:37:01

标签: jquery

我很确定答案并不那么难,但我不确定在哪里寻找它。

我想在创建div时附加一个jQuery事件处理程序。例如:

$('#somediv').click(function(){
    //do something
});

但...... #somediv不存在。由于一些AJAX加载它会。所以我需要的是像。

$('#somediv').whenImcreated(function(){
    $(this).click(function(){
        //do something
    });
});

2 个答案:

答案 0 :(得分:3)

您需要委派活动:

$(document).on('click', '#somediv', function(){
    //do something
});

请注意,虽然document作为主要选择器可以使用,但为了获得最佳性能,您应该将其作为#somediv中最接近的父元素,该元素出现在document.ready上的DOM中。

答案 1 :(得分:2)

使用.on()

由于元素是动态添加的,因此无法将事件直接绑定到它们。因此,您必须使用Event Delegation

$(document).on('click', '#somediv', function(){ ... });

语法

$( elements ).on( events, selector, data, handler );