Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
动态地将事件处理程序绑定到jQuery中已筛选元素的父级_Jquery_Ajax - Fatal编程技术网

动态地将事件处理程序绑定到jQuery中已筛选元素的父级

动态地将事件处理程序绑定到jQuery中已筛选元素的父级,jquery,ajax,Jquery,Ajax,我正在使用jQuery在Rails中开发一个web应用程序,其中许多处理都是通过表单的AJAX帖子进行的。我需要为各种“ajax:”事件(ajax:success,ajax:failure)设置处理程序,我认为这些事件会触发元素 由于有了Rails,我很容易将类添加到元素中,但将类添加到周围的表单并不总是那么容易。最后,因为我使用AJAX更新页面,我显然希望将处理程序绑定到任何需要它们的新添加表单 是否可以使用live()或类似工具,将事件动态绑定到标记,该标记是当前或将来存在的给定类的每个标记

我正在使用jQuery在Rails中开发一个web应用程序,其中许多处理都是通过表单的AJAX帖子进行的。我需要为各种“ajax:”事件(ajax:success,ajax:failure)设置处理程序,我认为这些事件会触发
元素

由于有了Rails,我很容易将类添加到
元素中,但将类添加到周围的表单并不总是那么容易。最后,因为我使用AJAX更新页面,我显然希望将处理程序绑定到任何需要它们的新添加表单

是否可以使用
live()
或类似工具,将事件动态绑定到
标记,该标记是当前或将来存在的给定类的每个
标记的父级。使用parent()或parents()来选择它

e、 g


最好的方法是使用,

如果我理解正确,那将不起作用,因为输入:提交选择器只考虑页面加载时存在的那些输入。我有很多表格和输入。是吗?啊,也许是个好电话。对于不应该使用这些事件的调用,我可以覆盖它们吗?我有一些(非常粗略的估计,我所有的帖子都需要它们,而我所有的GET都不需要)。您可以在
$.ajax
调用中设置它(如
onSuccess
onError
等)。啊,等等。我看到
.ajaxSend()
等是jQuery元素上的函数,而不是绝对全局函数。如果我想让它们作用于所有表单,即使是那些后来动态添加的表单,我应该在
html
body
?@chrisyes上注册处理程序。最有效的方法是在
$(document.body)
上。我刚才读到的一件事之前没有意识到,处理函数传递给AJAX设置对象,因此您可以执行
$(document.body).ajaxSuccess(函数(e,xhr,settings){if(settings.type='GET'){…
来回答您的第一个问题。
$("input:submit").each(function(){
    $(this).parents("form").live(...);
});