Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery将事件侦听器的设置推迟到ajax调用和渲染完成之后?_Javascript_Jquery_Ajax - Fatal编程技术网

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:这可能是澄清的一件好事,谢谢。更新了我的答案。