AddButton(克隆)代码:
$.fn.btnAddRow=$.fn.tableAutoAddRow=function(options,func){
var callBack;
if (typeof options=="object")
callBack=(func && $.isFunction(func)) ? func :null;
else
callBack=(options && $.isFunction(options)) ? options :null;
options=$.extend({
maxRow:null,
ignoreClass:null,
rowNumColumn:null,
autoAddRow:false,
oddRowCSS:null,
evenRowCSS:null,
inputBoxAutoNumber:false,
inputBoxAutoId:false,
displayRowCountTo:null,
maxRowAttr:null,
hideFirstOnly:null,
showFirstOnly:null,
cloneClass:null,
evenRowAttr:null,
oddRowAttr:null,
rowCountAttr:null,
autoNumAttr:null,
autoIdAttr:null
},options);
this.each(function(){
var tbl,etbl,cloneClass;
if(typeof options.cloneClass=="string" && options.cloneClass!=""){
if ($(this).closest("table").find("."+options.cloneClass).size()>0){
tbl=$(this).closest("table");
cloneClass=options.cloneClass;
}else if ($(this).closest("."+options.cloneClass).size()>0){
tbl=$(this).closest("."+options.cloneClass).closest("table");
cloneClass=options.cloneClass;
} else{
tbl=(this.nodeName.toLowerCase()=="table")?$(this):$(this).closest("table");
}
}else{
tbl=(this.nodeName.toLowerCase()=="table")?$(this):$(this).closest("table");
}
if(options.maxRowAttr && typeof $(this).attr(options.maxRowAttr)!="undefined")
options.maxRow=$(this).attr(options.maxRowAttr);
if(options.oddRowAttr && typeof $(this).attr(options.oddRowAttr)!="undefined")
options.oddRowCSS=$(this).attr(options.oddRowAttr);
if(options.evenRowAttr && typeof $(this).attr(options.evenRowAttr)!="undefined")
options.evenRowCSS=$(this).attr(options.evenRowAttr);
if(options.rowCountAttr && typeof $(this).attr(options.rowCountAttr)!="undefined")
options.displayRowCountTo=$(this).attr(options.rowCountAttr);
if(options.autoNumAttr && typeof $(this).attr(options.autoNumAttr)!="undefined")
options.inputBoxAutoNumber=$(this).attr(options.autoNumAttr);
if(options.autoIdAttr && typeof $(this).attr(options.autoIdAttr)!="undefined")
options.inputBoxAutoId=$(this).attr(options.autoIdAttr);
if(tbl.size()>0){
if(typeof tbl.data(className)==="undefined" || tbl.data(className)===null){
etbl=new ExpandableTable(tbl,options.maxRow);
if(this.nodeName.toLowerCase()!="table")
$(this)
.addClass("addRow"+etbl.seed)
.data(className,etbl);
}else{
if(this.nodeName.toLowerCase()!="table")
$(this)
.addClass("addRow"+tbl.data(className).seed)
.data(className,tbl.data(className));
}
if($(this).data(className)) {
etbl=$(this).data(className);
}
etbl.maxRow=options.maxRow;
etbl.maxRow=options.maxRow;
etbl.ignoreClass=options.ignoreClass;
etbl.rowNumColumn=options.rowNumColumn;
etbl.oddRowCSS=options.oddRowCSS;
etbl.evenRowCSS=options.evenRowCSS;
etbl.autoAddRow=options.autoAddRow;
etbl.inputBoxAutoNumber=options.inputBoxAutoNumber;
etbl.displayRowCountTo=options.displayRowCountTo;
etbl.hideFirstOnly=options.hideFirstOnly;
etbl.showFirstOnly=options.showFirstOnly;
if(typeof cloneClass=="string" && etbl.cloneClass!=cloneClass){
etbl.cloneClass=cloneClass;
} else {
etbl.cloneClass="cloneRow"+etbl.seed;
}
etbl.updateRowCount();
etbl.addCallBack=callBack;
};
});
for(var i=0;i<ExpandableTableList.length;i++){
if(!ExpandableTableList[i].goLive){
ExpandableTableList[i].live();
}
}
};
DelButton代码:
$.fn.btnDelRow=function(options,func){
var callBack;
if (typeof options=="object")
callBack=(func && $.isFunction(func)) ? func :null;
else
callBack=(options && $.isFunction(options)) ? options :null;
options=$.extend({
cloneClass:null
},options);
this.each(function(){
var etbl,tbl,cloneClass;
if ($(this).closest("."+options.cloneClass).size()>0){
tbl=$(this).closest("."+options.cloneClass).closest("table");
cloneClass=options.cloneClass;
}else{
tbl=$(this).hide().closest("table");
}
if(tbl.size()>0){
if(typeof tbl.data(className)==="undefined" || tbl.data(className)===null){
etbl=new ExpandableTable(tbl);
$(this)
.addClass("delRow"+etbl.seed)
.data(className,etbl);
}else{
$(this)
.addClass("delRow"+tbl.data(className).seed)
.data(className,tbl.data(className));
}
if($(this).data(className)) {
etbl=$(this).data(className);
etbl.deleteCallBack=callBack;
}
if(!(typeof etbl.cloneClass=="string"
&& etbl.cloneClass!="")){
etbl.cloneClass="cloneRow"+etbl.seed;
$(this).closest("tr").addClass("cloneRow"+etbl.seed);
} else if(typeof cloneClass=="string"){
etbl.cloneClass=cloneClass;
} else {
etbl.cloneClass="cloneRow"+etbl.seed;
$(this).closest("tr").addClass("cloneRow"+etbl.seed);
}
etbl.update();
}
});
for(var i=0;i<ExpandableTableList.length;i++){
if(!ExpandableTableList[i].goLive){
ExpandableTableList[i].live();
}
}
};
该插件可以正常工作,但如果我想在克隆之前删除第一个选项,它就无法工作。要删除,我需要克隆它,然后删除原始和克隆的。
我怎么能有一个选项来检查是否没有克隆,是否有机会清除而不是删除?