以下javascript
具有getAjax
函數。這是在html表單中調用每個鼠標選擇事件。我必須在每個事件中調用相同的函數。當我想修改getAjax
函數時,必須爲所有事件做。有沒有什麼辦法讓getAjax
函數保持在一個地方,並在每個鼠標事件中調用。如何避免重複調用javascript函數
注:所有選擇元素都在同一個容器
<script type = "text/javascript" >
$(document).ready(function() {
var age1 = 21;
var age2 = 35;
var salary = 10000;
var width = 410;
var height = 510;
getAjax(ajaxUrl, salary, age1, age2, width, height);
$("#age1").change(function() {
age1 = parseInt($(this).val());
getAjax(ajaxUrl, salary, age1, age2, width, height);
});
$("#age2").change(function() {
age2 = parseInt($(this).val());
getAjax(ajaxUrl, salary, age1, age2, width, height);
});
$("#salary").change(function() {
salary = parseInt($(this).val());
getAjax(ajaxUrl, salary, age1, age2, width, height);
});
$("#width").change(function() {
width = parseInt($(this).val());
getAjax(ajaxUrl, salary, age1, age2, width, height);
});
$("#height").change(function() {
height = parseInt($(this).val());
getAjax(ajaxUrl, salary, age1, age2, width, height);
});
});
function getAjax(URL, salary, age1, age2, width, height) {
$.ajax({
url: URL,
data: {
sala: salary,
age1: age1,
age2: age2,
het1: width,
het2: height
},
dataType: "html",
type: "POST",
success: function(retdata) {
$("#data1").html(retdata);
}
});
} </script>
如果所有的選擇元素在同一容器中,我只是使用父容器上的一個事件處理程序,並讓改變事件冒泡吧。如果您確實需要對每個選擇單獨更改處理程序,請在循環中創建它們,因爲除了要更新的變量之外,更改函數都是相同的。 – Shilly
你可以在像這樣的元素中放置onchange函數並相應地傳遞值。 –
@Shilly yes所有select元素都在同一個容器中。 –