部分渲染后的Rails javascript调用

时间:2013-11-23 01:48:40

标签: javascript ruby-on-rails ruby-on-rails-4

在使用部分通过AJAX加载时,将javascript / coffeescript放在Rails中的正确位置是什么?

我想打电话:

$('.selector').datapicker() 

每次'_form'部分加载。

我可以将它直接放到_form.html.erb部分中,它会像预期的那样工作但我觉得这是js的错误持有者。

2 个答案:

答案 0 :(得分:3)

“正确的位置”应位于所有js脚本所在的assets文件夹中。

您可以使用:

$( document ).ajaxComplete(function( event,request, settings ) {
    $('.selector').datapicker();
});

答案 1 :(得分:0)

如果您正在使用UJS数据远程执行ajax,则可以挂钩到UJS所做的ajax事件。见这里:https://github.com/rails/jquery-ujs/wiki/ajax

使用ajax:complete将数据贴图重新添加到元素中,例如:

$('#submitted_form').on('ajax:complete', function(event, xhr, settings) {
  $('#date_field').datapicker();
});

...然后这将进入您的assets / javascript文件夹。

另请参阅此文章:http://www.alfajango.com/blog/rails-3-remote-links-and-forms/