2012-01-15 120 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