我是jQuery / Javascript的新手,所以我不确定这是否可行。 我有一个简单的函数删除元素,添加一个类并禁用输入按钮:
function removeElements() {
$("#dragAndDropFiles, placeHolderImage").remove();
$(".dragDropTag, .dragDrop, .dragDropIcon, #multiUpload").addClass("dropped");
$("#multiUpload").prop('disabled', true);
}
稍后我将需要基本上反转这个函数(即重新添加所有元素,删除类,并启用输入按钮。我可以通过添加另一个函数来实现:
function addElements() {
$("#dragAndDropFiles, placeHolderImage").append('<div>markup here</div>');
$(".dragDropTag, .dragDrop, .dragDropIcon, #multiUpload").removeClass("dropped");
$("#multiUpload").prop('disabled', false);
}
我的问题是,这可以以某种方式进行优化,所以我不必编写两个函数吗?例如,我可以将它包装成一个重复较少的函数吗? (例如,不是为了添加/删除类或启用/禁用输入字段而重写相同的行,而是根据传入的参数使一行代码执行不同的操作?)
答案 0 :(得分:0)
基本上,你可以这样做:
function setElements(remove) {
var dropIds = $("#dragAndDropFiles, placeHolderImage");
var dropClasses = $(".dragDropTag, .dragDrop, .dragDropIcon, #multiUpload");
if (remove) {
dropIds.remove();
dropClasses.addClass("dropped");
} else {
dropIds.append('<div>markup here</div>');
dropClasses.removeClass("dropped");
}
$("#multiUpload").prop('disabled', remove);
}