當部分內容通過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