用于处理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)