我希望尽量减少我的代码。
我尝试根据下拉列表更改加载数据表。所以我在初始页面加载时使用两次ajax调用来完成我的工作,然后在下拉列表更改时使用。
事情可以变得更简单
我的代码:
var reason = $("#DropDown_Select").val()
"fnServerData": function (sSource, aoData, fnCallback) {
debugger;
$('#DropDown_Select').change(function () {
alert($(this).val());
reason = $(this).val()
$.ajax({
"type": "GET",
"dataType": 'json',
"contentType": "application/json; charset=utf-8",
"url": sSource+"/"+reason,
"data": aoData,
"success": function (data) {
debugger;
fnCallback(data);
}
});
});
$.ajax({
"type": "GET",
"dataType": 'json',
"contentType": "application/json; charset=utf-8",
"url": sSource +"/"+reason,
"data": aoData,
"success": function (data) {
debugger;
fnCallback(data);
}
});
}
在上述情况下,代码最小化是否可行?
此致
答案 0 :(得分:2)
由于您的AJAX调用是相同的,您可以将该部分代码放在一个函数中,并将所需的值作为参数:
function handleChange(sSource, aoData, fnCallback, reason) {
$.ajax({
"type": "GET",
"dataType": 'json',
"contentType": "application/json; charset=utf-8",
"url": sSource+"/"+reason,
"data": aoData,
"success": function (data) {
fnCallback(data);
}
});
}
然后使用函数:
"fnServerData": function (sSource, aoData, fnCallback) {
$('#DropDown_Select').change(function () {
handleChange(sSource, aoData, fnCallback, $(this).val());
});
handleChange(sSource, aoData, fnCallback, $("#DropDown_Select").val());
}