Javascript 如何使用jQuery将事件侦听器的设置推迟到ajax调用和渲染完成之后?
我熟悉下划线的Javascript 如何使用jQuery将事件侦听器的设置推迟到ajax调用和渲染完成之后?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我熟悉下划线的。.defer函数。我如何用jQuery重新创建它 我正在执行一个ajax调用,将调用响应中的div追加到DOM中,但问题是,我需要在新创建的div上设置事件侦听器,但我必须等待它们被呈现。我该怎么做 $.getJSON( mAPI, function( m ) { $(m.items).each(function(item) { $('#items-container').append('<div class="item">' + item + '
。.defer
函数。我如何用jQuery重新创建它
我正在执行一个ajax调用,将调用响应中的div
追加到DOM中,但问题是,我需要在新创建的div
上设置事件侦听器,但我必须等待它们被呈现。我该怎么做
$.getJSON( mAPI, function( m ) {
$(m.items).each(function(item) {
$('#items-container').append('<div class="item">' + item + '</div>');
});
}):
$( ".item" ).click(function(e) {
alert( "Handler for .click() called." );
});
$.getJSON(mAPI,函数(m){
$(m.items)。每个(功能(项){
$(“#项容器”)。追加(“”+项+“”);
});
}):
$(“.item”)。单击(函数(e){
警报(“调用了.click()的处理程序”);
});
您的最佳选择可能是使用以下命令将事件委托给容器:
注意:您只需要附加此事件处理程序一次,而不是在每次AJAX请求之后。(谢谢)您最好的选择可能是使用以下命令将事件委派给容器:
注意:您只需要附加此事件处理程序一次,而不是在每次AJAX请求之后。(谢谢)您最好的选择可能是使用以下命令将事件委派给容器:
注意:您只需要附加此事件处理程序一次,而不是在每次AJAX请求之后。(谢谢)您最好的选择可能是使用以下命令将事件委派给容器: 注意:您只需要附加此事件处理程序一次,而不是在每次AJAX请求之后。(谢谢)使用 由于元素是动态添加的,您无法将事件直接绑定到它们。因此您必须使用 语法
$( elements ).on( events, selector, data, handler )
使用
由于元素是动态添加的,您无法将事件直接绑定到它们。因此您必须使用
语法
$( elements ).on( events, selector, data, handler )
使用
由于元素是动态添加的,您无法将事件直接绑定到它们。因此您必须使用
语法
$( elements ).on( events, selector, data, handler )
使用
由于元素是动态添加的,您无法将事件直接绑定到它们。因此您必须使用
语法
$( elements ).on( events, selector, data, handler )
另外请注意,这只需要发生一次,而不是每次发出getJSON请求。@KevinB:这可能是一件需要澄清的好事情,谢谢。更新了我的答案。另外,请注意,这只需要发生一次,而不是每次发出getJSON请求。@KevinB:这可能是澄清的一件好事,谢谢。更新了我的答案。另外,请注意,这只需要发生一次,而不是每次发出getJSON请求。@KevinB:这可能是澄清的一件好事,谢谢。更新了我的答案。另外,请注意,这只需要发生一次,而不是每次发出getJSON请求。@KevinB:这可能是澄清的一件好事,谢谢。更新了我的答案。