在使用部分通过AJAX加载时,将javascript / coffeescript放在Rails中的正确位置是什么?
我想打电话:
$('.selector').datapicker()
每次'_form'部分加载。
我可以将它直接放到_form.html.erb
部分中,它会像预期的那样工作但我觉得这是js的错误持有者。
答案 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/