2017-11-10 7 views
0

これは私にとってはうまくいくコードですが、それはビューにあり、私はapplication.jsに移動したいので、私は別のフォームで使うことができます。スクリプトをビューからapplication.jsに移動する方法

もう1つは、同じことをする2つのスクリプトがあることです。 1つはチェックボックスをクリックしたとき、もう1つはページを読み込むときにチェックされているかどうかをチェックするときです。それらをマージしてコードを繰り返す必要はありませんか?

<script type="text/javascript"> 
    function hideAddress() 
    { 
     if($('#same').is(":checked")) 
      $("#mailing-address").hide(); 
     else 
      $("#mailing-address").show(); 
    } 
</script> 
<script type="text/javascript"> 
    $(document).ready(function hideAddress() { 
     { 
      if ($('#same').is(":checked")) 
       $("#mailing-address").hide(); 
      else 
       $("#mailing-address").show(); 
     } 
    }); 
</script> 

編集

私は、スクリプトタグなしapplication.jsに移動しようとしたが、私はページをリロードしない限り、今.ready機能が動作しません。

$(document).ready(hideAddress); 


    function hideAddress() 
    { 
     if($('#same').is(":checked")) 
      $("#mailing-address").hide(); 
     else 
      $("#mailing-address").show(); 
    } 
+3

をこのコードを設定することになったあなたは、 '$(ドキュメント).ready(hideAddress)を使用することができますか;'? – Titus

+0

私はレールについてはわかりませんが、 'application.js'がJavaScriptファイルであれば、安全にそのコードを移動することができます。あなたの 'application.js'にサンプルコードを投稿できますか? – lealceldeiro

+0

@lealceldeiroスクリプトタグなしでファイルに移動しようとしましたが、準備ができていません。私がページをリロードすると、それは動作します。あなたはそれについて何か考えを持っていますか? – Allan

答えて

0

だから、turbolinksのように見えるが正しく動作しない準備ができて文書化になり、その代わりに(document).readyの私は$(document).on('turbolinks:load'をしなければなりませんでした。

だから、私はapplication.jsに

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


    $(document).on('turbolinks:load', hideAddress); 

    function hideAddress() 
    { 
     if($('#same').is(":checked")) 
      $("#mailing-address").hide(); 
     else 
      $("#mailing-address").show(); 
    } 
関連する問題