0

カスタムコントローラーを生成したときに作成されたapp/assetsフォルダーにcustom.jsファイルがあります。これで、カスタム コントローラー ビューの一部であるapp/views/customsの下にcustom_action.js.erbファイルを作成しました。この custom_action.js.erb ファイルは、ajax の応答を処理するために使用されます。

今私が直面している問題は、 custom.js で定義された関数にcustom_action.js.erbにアクセスできないことです。これは私のcustom.jsファイルです。

$(document).ready(function(){
     function someFunction() {
            // do something              
     }
}

これが私のcustom_action.js.erbファイルです。

$('#selector').onClick{
    someFunction();  //This is where I want to access the custom.js function
}

現在、custom.js と custom_action.js.erb ファイルの両方で関数を繰り返しています。この繰り返しを回避し、 custom.jsファイルで定義するときに関数にアクセスできるようにする方法はありますか。

4

1 に答える 1

1

で関数をラップする必要はありません$(document).ready。これを行うと、その特定の準備ができたコールバック ハンドラー関数内にのみスコープがあります。また、jQuery にはonClickメソッドがありません。

$(document).readyページ内の要素を見つける必要がある、ページの読み込み時にすぐに実行されるコードにのみ必要です。

function someFunction() {
            // do something              
     }

$(document).ready(function(){
    $('#selector').click(function(){
         someFunction();
    });
      /* or */
      $('#selector').click(someFunction);
});
于 2013-11-07T05:28:18.920 に答える