Rails ujs用于部分DOM替换?

时间:2014-05-21 07:37:35

标签: ruby-on-rails ujs

我的前端结构如下:

<div id='item-list'>
  # List of items to be replaced every time
</div>

<form>
  <submit/>
</form>

这个想法是,每次点击submit按钮时,我的JS都会发送AJAX请求,服务器会返回item-list的HTML部分,并在我的前端,item-list将替换为ajax return。

但是,由于在我的item-list中也使用了UJS,因此在替换后绑定不再有效。

我认为这是UJS代码在更换发生时没有执行的问题。我想问一下如何强制执行UJS代码?

非常感谢

1 个答案:

答案 0 :(得分:0)

您需要delegate来自页面上始终存在的元素的事件绑定(通常为document):

$(document).on("submit", ".element", function(){
  //stuff
});

您遇到的问题是Javascript只适用于实际DOM中的元素。在加载DOM

之后附加的元素不起作用,也无法使用

这意味着您必须将javascript事件绑定到始终存在于DOM中的元素,并从中委派

-

对于您迄今为止发送的内容,我能做的最好 - 如果您提供更多背景信息,我将能够提供更丰富的答案