2012-01-15 46 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に移動すると機能しません。アプリ/資産/ JavaScriptの/ application.jsのようになります。

明らか
//= require jquery 
    //= require jquery_ujs 
    //= require_tree . 

、私は正しく資産のパイプラインを理解していません。私は間違って何をしていますか?

答えて

2

変更コールバックを$(document).readyに埋め込みましたか?

アセットパイプラインの問題ではなく、DOM読み込みの問題である必要があります。

'アプリ/資産/ JavaScriptの/ 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); 
     } 
    }); 
    }); 
}); 

'アプリ/資産/ JavaScriptの/ application.js'

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

うん、それはそれでした。 DOMが完全にロードされているとは考えていませんでした。ありがとう! – m2web

関連する問題