Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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_Asynchronous_Bind - Fatal编程技术网

Javascript 如何将jquery事件重新绑定到通过ajax加载的内容,而不必为每个事件/类执行此操作

Javascript 如何将jquery事件重新绑定到通过ajax加载的内容,而不必为每个事件/类执行此操作,javascript,jquery,ajax,asynchronous,bind,Javascript,Jquery,Ajax,Asynchronous,Bind,因此,我有一个jquery应用程序,可以绑定: 所有my.btn delete元素的“删除功能” 将“添加函数”添加到所有my.btn add元素 等等。在我的webapp的一个div中,我异步加载内容,包括我想要绑定“delete”和“add”函数的元素。这些元素也有一个“btn delete”或“btn add”类,但由于内容是异步加载的,因此事件不会绑定到它们,而不进行任何操作 所以我听说使用.on('click'…)函数可以在异步加载内容后立即触发,我可以重新绑定这些函数。但是对于我

因此,我有一个jquery应用程序,可以绑定:

  • 所有my.btn delete元素的“删除功能”
  • 将“添加函数”添加到所有my.btn add元素
等等。在我的webapp的一个div中,我异步加载内容,包括我想要绑定“delete”和“add”函数的元素。这些元素也有一个“btn delete”或“btn add”类,但由于内容是异步加载的,因此事件不会绑定到它们,而不进行任何操作

所以我听说使用.on('click'…)函数可以在异步加载内容后立即触发,我可以重新绑定这些函数。但是对于我想要使用的每个函数,我都必须这样做。这是我不想要的

我想要的是一个通用函数,它将所有先前定义的事件函数重新绑定到我加载到的div容器中的每个元素

有没有一种方法可以做到:

“将所有事件函数重新绑定到div id xyz中异步加载的元素”


如果我不必在每次回调时手动重新绑定每个函数,那么我的生活就会轻松得多。

如果使用委托事件处理,就永远不必重新绑定

$('body').on('click', '.btn-delete', function(ev) {
  // delete ...
});
这将设置一个事件处理程序,当“单击”事件在任何时间从任何元素冒泡到主体时,它将捕获这些事件。它作用于与给定选择器匹配的元素的任何“单击”。按钮是最初存在还是动态添加并不重要


您不必将处理程序放在
元素上;它们可以放在容器的任何一层。

@HamedMomeni不,委托事件处理程序没有任何有意义的性能问题。选择器一次只需要针对一个DOM元素进行测试。