Rails + jQuery:JS函数在页面加载时自动运行

时间:2014-01-22 22:28:10

标签: jquery

我将代码解压缩到一个名为load_shipping_estimates的函数中:

    $(function() {
    function load_shipping_estimates() {
        var zip_code = $('#shipping_estimator_text_field').val();
        if (/^\d+$/.test(zip_code) && zip_code.length == 5) {
            jQuery.ajax({
                url: '/checkout/estimate_shipping',
                type: 'GET',
                beforeSend: function () { $('.ajax_loader').show(); },
                complete: function () { $('.ajax_loader').hide(); },
                data: {"zip_code": zip_code},
                dataType: 'script'
            });
            return false;
        } else {
            $('#estimator_error_message').html('Please enter a 5 digit zip code.');
            return false;
        }
    }

      // it should only happen when I click on #estimate_shipping_link
    $('.ajax_loader').hide();
    $('#estimate_shipping_link').on("click", load_shipping_estimates());


    });

一旦页面加载,它就会继续加载。从最后几行可以看出,我只想在用户点击链接时加载它。我该如何解决?我需要将它提取到函数中,因为我将在文件的其他地方重用它。

2 个答案:

答案 0 :(得分:1)

您在启动时使用load_shipping_estimates()调用您的函数。

$('#estimate_shipping_link').on("click", load_shipping_estimates);

应该做的伎俩:)

答案 1 :(得分:0)

整个命名函数包含在$(function() { });中,这使得它在页面加载时自行运行

删除第一行和最后一行,你应该是好的