这不一定是“如何做”的问题,而是一个请求,以帮助提高我对JavaScript和Jquery的理解。我最近在当前工作中一直在使用Jquery,并且我的所有jquery都涉及许多AJAX调用。在几个文件中,我至少有6个针对不同情况的ajax调用,我想知道是否可以通过构建代码来实现此目的的更有效方法。我的一位不编写代码的同事建议将AJAX调用转换为属性并传递参数。这有可能吗?如果不是,是否有更好,更简便的方法来处理一个文件中的多个AJAX调用?
谢谢您的投入,我希望从中学到很多东西
以下是我们的AJAX调用之一的示例
$.ajax({
type: 'POST',
url: '',
data: {
method: 'custCodeData',
custCode: $('#custCode').val()
},
dataType: 'JSON',
success: function (data) {
var array = data.DATA;
$("#response tr:not(:first)").remove();
for (var i = 0; i < array.length; i++) {
var newRow = table.insertRow();
for (var j = 0; j < array[i].length; j++) {
if (j < 7) {
var cell = newRow.insertCell(j);
cell.innerHTML = array[i][j];
}
if (j === 0) {
if (array[i][0] == false) {
cell.innerHTML = "No";
}
if (array[i][0] == true) {
cell.innerHTML = "Yes";
}
}
if (j === 2) {
if (array[i][8] == false) {
cell.innerHTML = `<a href='/buying/quicklink/index.cfm?Passed_CustomerID=${array[i][7]}'>${array[i][2]} </a><i class="fa fa-arrow-down" aria-hidden="true" ONMOUSEOVER="return overlib('Incomming Customer', FGCOLOR, 'FFFFCC', BORDER, 2, BGCOLOR, '000000', TEXTFONTCLASS, 'RollOver', WRAP);" ONMOUSEOUT="nd();"></i>`
} else if (array[i][8] = true) {
cell.innerHTML = `<a href='/buying/quicklink/index.cfm?Passed_CustomerID=${array[i][7]}'>${array[i][2]} </a><i class="fa fa-arrow-up" aria-hidden="true" ONMOUSEOVER="return overlib('Outgoing Customer', FGCOLOR, 'FFFFCC', BORDER, 2, BGCOLOR, '000000', TEXTFONTCLASS, 'RollOver', WRAP);" ONMOUSEOUT="nd();"></i>`
}
}
}
}
$("#response tr:contains(Yes)").css({"background-color": "#ff0000", "color": "#FFF"});
}
})
答案 0 :(得分:3)
function doTheSameExactAJAXThingAgain(method){
$.ajax({
type: 'POST',
url: '',
data: {
method: method,//<- METHOD here
custCode: $('#custCode').val()
},
dataType: 'JSON',
//...etc
}
doTheSameExactAJAXThingAgain('custCodeData');
doTheSameExactAJAXThingAgain('compNameData');
//etc.