如何将脚本从视图移动到rails中的application.js

时间:2017-11-10 18:19:13

标签: javascript jquery ruby-on-rails

做一些研究这个代码对我有用,但它在视图中,我想转移到application.js,所以我可以使用不同的形式。

另一件事是我有两个脚本做同样的事情。一个是当我点击复选框时,另一个是检查加载页面时是否已经检查过。我可以合并它们,所以我不必重复代码吗?

<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();
    }

1 个答案:

答案 0 :(得分: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();
    }