当部分内容通过AJAX加载时,将JavaScript/coffeescript放入Rails中的正确位置是什么?部分呈现后的Rails javascript调用
我想呼吁:
$('.selector').datapicker()
每次 '_form' 部分加载
。
我可以把这个直接放到_form.html.erb
部分,它会像预期的那样工作,但我觉得它是js的错误持有者。
当部分内容通过AJAX加载时,将JavaScript/coffeescript放入Rails中的正确位置是什么?部分呈现后的Rails javascript调用
我想呼吁:
$('.selector').datapicker()
每次 '_form' 部分加载
。
我可以把这个直接放到_form.html.erb
部分,它会像预期的那样工作,但我觉得它是js的错误持有者。
“正确的位置”应该在所有js脚本所在的资产文件夹中。
您可以使用:
$(document).ajaxComplete(function(event,request, settings) {
$('.selector').datapicker();
});
如果您使用UJS数据远程做AJAX,你可以连接到该UJS使得AJAX事件。在这里看到:https://github.com/rails/jquery-ujs/wiki/ajax
使用ajax:complete
到datapicker重新添加的元素如:
$('#submitted_form').on('ajax:complete', function(event, xhr, settings) {
$('#date_field').datapicker();
});
...然后这会去你的资产/ JavaScript的文件夹中。
还检查了这篇文章:http://www.alfajango.com/blog/rails-3-remote-links-and-forms/
我不认为我应该触发js的每个AJAX调用 – ted
触发它在你的Ajax调用功能齐全,那么: $阿贾克斯({ 网址:“ ()。('。selector')。datapicker(); });函数(){0。 –
对不起,但明确确定js按URL运行并不是一个好主意 – ted