1

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

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

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

但是……#somediv不存在。由于一些 AJAX 负载它会。所以我需要的是类似的东西。

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

2 回答 2

3

您需要一个委托事件:

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

请注意,虽然document主选择器会起作用,但为了获得最佳性能,您应该将其设置为最近的父元素,#somediv该元素存在于document.ready.

于 2013-11-01T15:37:41.377 回答
2

使用.on()

由于元素是动态添加的,因此您不能将事件直接绑定到它们。因此您必须使用事件委托

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

句法

$( elements ).on( events, selector, data, handler );
于 2013-11-01T15:38:10.943 回答