自動運行我提取的代碼到一個名爲load_shipping_estimates
功能:的Rails +的jQuery:JS功能保持在頁面加載
$(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());
});
它會持續,一旦頁面加載。從最後幾行可以看到,我只希望在用戶點擊鏈接時加載它。我該如何解決?我需要將它提取到一個函數,因爲我要在文件的其他地方重用它。
有什麼區別?只要刪除'()'? – Edmund
是的。用代碼括號可以調用一個函數。但是你想設置函數作爲點擊事件的回調:) - >無括號:) – Eich