2012-01-15 127 views
0

我對Rails比較陌生。我有以下的jquery代碼:Rails 3.1.3 jquery ajax不能在單獨的.js文件中工作

//used in my.html.erb 
    $('#category_id').change(function() { 
     var theURL = "/requests/byCategory/" + $('#category_id').val() 
     $.ajax({url: theURL, 
     success: function(data){ 
     $('#displaySelection').html(data); 
     } 
     }) 
    }); 

當我有它嵌套在erb中的腳本標記它的工作。當我將上面的jquery代碼移動到app/assets/javascripts/my.js時,它不起作用。該應用程序/資產/ Java腳本/ application.js中的樣子:

//= require jquery 
    //= require jquery_ujs 
    //= require_tree . 

很顯然,我沒有正確理解資產管道。我究竟做錯了什麼?

回答

2

您是否將變更回調嵌入$(document).ready

如果不是,它不應該是資產管道的問題,而是DOM負載的問題。

'應用程序/資產/ Java腳本/ my.js'

$(document).ready(function() { 
    $('#category_id').change(function() { 
    var theURL = "/requests/byCategory/" + $('#category_id').val() 
    $.ajax({url: theURL, 
     success: function(data){ 
     $('#displaySelection').html(data); 
     } 
    }); 
    }); 
}); 

'應用程序/資產/ Java腳本/ application.js中'

//= require jquery 
//= require jquery_ujs 
//= require_tree . 
+0

是的,就是這樣。沒有想到DOM被完全加載。謝謝! – m2web 2012-01-15 17:25:05