用于处理ajax事件的Rails UJS“on”

我在Rails应用程序中使用jQuery方法“on”将事件附加到并不总是存在的表单上。 当#myForm附加到文档时,似乎没有附加事件处理程序。

这是UJS建议使用的on()

 $("#myForm").on("ajax:complete", function(xhr, status) { ... } 

以下是我通常on()实现jQuery的方法,但这似乎不起作用:

 $("body").on("ajax:complete", "#myForm", function(xhr, status) {...} 

Rails UJS wiki: https : //github.com/rails/jquery-ujs/wiki/ajax

UJS与on函数没什么关系。 这是由jQuery提供的,它需要多种forms。 UJS只是发射ajax:complete事件,所以你可以自己挂钩。

selector参数是可选的,所以两者都是

 $(...).on("ajax:complete", function(xhr, status) { ... } 

 $(...).on("ajax:complete", "form", function(xhr, status) { ... } 

是有效的用途,虽然它们的工作方式有些不同

一些有用的链接:

事件代表团

理解委托.on()

 $(selector).on(event,childSelector,data,function,map) 

在此处输入图像描述