请问这是一种什么风格的JS(jQuery)代码?根本看不懂啊,哪位前辈能看看这是什么风格的?从那能看到相关说明或者使用文档吗?

C罗子 2017-06-23 05:14:27

(function(e) {
e.fn.myFood = function(t, n) {
if (typeof t == "string") {
var a = e.fn.myFood.methods[t];
if (a) {
return a(this, n)
}
}
t = t || {};
if (e.browser.useapp) {
t.isShowQuantity = false
}
return this.each(function() {
var n = e.data(this, "myFood");
if (n) {
e.extend(n.options, t)
} else {
n = e.data(this, "myFood", {
options: e.extend({},
e.fn.myFood.defaults, t)
});
n.isSetUI = false
}
var a = e(this);
n.myFood_TableConfig = e("<div></div>").appendTo(a);
var r = n.options;
n.myFood_TableConfig.tableconfig({
pageName: "食品",
params:r.tableparams,
onEndGetData: function(e) {
$("body").hideLoading();
var t = n.myFood_TableConfig.tableconfig("getColumns", "0002");
n.columns = t.columns;
n.frozenColumns = t.frozenColumns;
i(a[0]);
r.afterSetUI.call(a[0])
},
onSetColumns: function(e, t, i) {
i.halign = "center";
i.sortable = true;
i.sorter = function(e, t) {
if (e == t) {} else {
return e > t ? 1 : -1
}
};

}
});
$("body").showLoading("loading");
n.myFood_TableConfig.tableconfig("beginGetData")
})
};
var t = function() {
return
};
e.fn.myFood.defaults = {
ischecktrueorfalse: true,
onBeginGetData: function() {},
onEndGetData: function(e) {},
getData: function(e) {},
afterSetUI: function() {},
OnSelectItem: function(e) {},
OnSelectItems: function(e) {},
onSetColumns: function(e, t, i) {},
getAttrOpt: function() {
return {
CorpID: null,
IOUID: null
}
},
isOnlySearchMainUnit: true,
isShowStop: false,
isShowTaoCan: false
};
e.fn.myFood.methods = {
beginGetData: function(e) {
getData(e[0])
},
GetData: function(e) {
return b(e[0])
},
onClose: function(e) {
showConfig(e[0])
},
show: function(e) {
r(e[0])
},
open: function(e, t) {
r(e[0], t)
},
showCheck: function(e) {
w(e[0])
},
hideCheck: function(e) {
y(e[0])
},
close: function(e) {
o(e[0])
},

};
var i = function(t) {
var i = e.data(t, "myFood");
if (i["isSetUI"]) {
return
}
i["myFoodDialog"] = e('<div class="row hidden ex-dialog-c" tag="refDialog"> </div>').appendTo(e(t));
i["layout"] = e('<div class=""></div>').appendTo(i["myFoodDialog"]);
i["objCondition"] = e("<div></div>").appendTo(i["myFoodDialog"]);
var n = e('<div class="col-sm-12"></div>').appendTo(i["layout"]);
i["divtoolbar"] = e('<div class="row" ></div>').appendTo(n);
i["fSearchInput"] = e('<div class="ex-group-control col-lg-12 col-md-12 col-sm-12 col-xs-12"><div class="input-group input-icon"><input class="form-control" type="text" placeholder="JAN、商品名" style="border:1px solid #6fb3e0;"/> <span class="input-group-btn"> <button class="btn btn-info btn-no-border" type="button" style="height: 34px;">検索</button></span> <i class="ace-icon fa fa-filter" style="color:#6fb3e0;"></i></div></div>').appendTo(i["divtoolbar"]).find("input");
i.fSearchInput.keydown(function(n) {
var a = null;
if (e.browser.msie == true || e.browser.ie8 == true) {
a = window.event.keyCode
} else {
a = n.which
}
if (a == 13) {
var r = i.fSearchInput.val();
if (!r) {
i.fSearchInput.focus();
return
}
i.SearchDataType = 3;
i.rowsArry=[];
g(t, true)
}
}).next().click(function(e) {
i.rowsArry=[];
var n = i.fSearchInput.val();
if (!n) {
i.fSearchInput.focus();
return
}
i.SearchDataType = 3;


g(t, true)
});
e('<div class="col-sm-12 " style="height:10px;"></div>').appendTo(n);

i["divcenter"] = e('<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 xs-width-100"><div class="ex-datarid-c" style="height:350px;"></div></div>').appendTo(i["layout"]).find("div.ex-datarid-c");
i["prodTt"] = e("<table></table>").appendTo(i.divcenter);

i["isSetUI"] = true;
l(t);
i["isSetDialog"] = false;
i.SearchDataType = 1
};
var a = function(t) {
var i = e.data(t, "myFood");
if (i.isSetDialog) {
return
}
i.myFoodDialog.removeClass("hidden");
var a = i.options;
i.myFoodDialog.bs_dialog({
width: "lg",
title: '<h5 style="margin-top:5px;margin-bottom:5px;"><i class="ace-icon fa fa-search orange bigger-120" style="margin-right:5px;"></i></h5>',
onShow: function() {
i.myFoodDialog.bs_dialog("showLoading", "");
var e = i.myFoodDialog.closest("div.modal-body").height();
var a = e - i.divtoolbar.height() - 10;
i.divcenter.height(a);
g(t, true)
i.prodTt.datagrid("resize")
},
buttons: [
{
dom: '<button class="btn btn-sm btn-warning btn-next" ><i class="ace-icon fa fa-remove bigger-110"></i><span class="bigger-110">取消</span></button>',
handler: function() {
S(t);
i.myFoodDialog.bs_dialog("close", true)
}
},
{
dom: '<button class="btn btn-sm btn-success btn-next ex-xs-quick" ><i class="ace-icon fa fa-check bigger-110"></i><span class="bigger-110">选择</span></button>',
handler: function() {
var n = e.data(i.prodTt[0], "datagrid");
if (n) {
var a = n.options;
if (a.crowindex != -1 && a.cfield != "") {
i.prodTt.datagrid("ex_endEdit", a.crowindex)
}
}
b(t);
i.myFoodDialog.bs_dialog("close", true)
}
}],
onClose: function() {
i.rowsArry = [];
i.prodTt.datagrid("ex_endEdit");
S(t)
}
});

i.isSetDialog = true
};
var r = function(t, i) {
var n = e.data(t, "myFood");
if (n.isSetDialog) {} else {
a(t)
}
var r = n.options;
e(n.myFoodDialog).bs_dialog("open");
r.getData = i
};
var o = function(t) {
var i = e.data(t, "myFood");
var n = i.options;
e(i.myFoodDialog).bs_dialog("close")
};
function l(t) {
var i = e.data(t, "myFood");
var n = i.options;
i.pPageNumber = 1;
i.pPageSize = 50;
i.bLoaded = false;
i.CorpID = "nothing";
i.CurrentIndex = 1;
i.CurrentCon = "";
i.rowsArry = [];
var a = null;
if (i.frozenColumns && i.frozenColumns.length > 0) {
a = i.frozenColumns[0]
} else {
a = i.columns[0]
}
a.unshift({
title: "check",
field: "checked",
checkbox: true,
hidden: n.ischecktrueorfalse,
width: 60
});

var o = {
iconCls: "icon-table",
fit: true,
loadMsg: "....",
pagination: true,
rownumbers: true,
border: true,
autoAdd: false,
frozenColumns: i.frozenColumns,
columns: i.columns,
singleSelect: n.ischecktrueorfalse,
selectOnCheck: !n.ischecktrueorfalse,
onLoadSuccess: function(e) {},
onCheck: function(e, a) {
if (a == null) {
return
}
if (n.ischecktrueorfalse == true) {
return
}
i.CurrentIndex = e;
c(t, a);
},
onUncheck: function(e, a) {

onUncheckAll: function(a) {
e.each(a,
function(e, a) {
d(t, a)
})
},
onDblClickRow: function() {
if (e.browser.isMoveBrowser) {
return
}
if (n.ischecktrueorfalse) {
b(t);
i.myFoodDialog.bs_dialog("close", true)
}
}
};
i.prodTt.exdatagrid(o);
f(t);
i.LastloadData = {
total: 0,
rows: []
}
}
function f(t) {
var i = e.data(t, "myFood");
var n = i.prodTt.datagrid("getPager");
if (n) {
e(n).pagination({
showPageList: true,
pageNumber: 1,
pageSize: i.pPageSize,
showRefresh: false,
showPageList: false,
onSelectPage: function(e, n) {
i.pPageNumber = e;
i.pPageSize = n;
g(t, false)
}
})
}
}

var g = function(t, i) {
var n = e.data(t, "myFood");
var a = n.options;
n.prodTt.datagrid("ex_endEdit");
n.myFoodDialog.bs_dialog("showLoading", "");
if (i) {
n.pPageNumber = 1;
e(n.prodTt.datagrid("getPager")).pagination({
pageNumber: 1
})
}
var r = {};

r = {
"reftextkey":"product",
search: $.trim(n["fSearchInput"].val()),
pageNumber: n.pPageNumber,
pageSize: n.pPageSize
}
e.ajaxApi2({
type: "POST",
url: "/ABC/testMy1",
data: r,
dataType: "json",
success: function(t) {
if (n.SearchDataType != 3) {
n.fSearchInput.val("")
}
n.bLoaded = true;
if (e.type(t) === "string") {
n.myFoodDialog.bs_dialog("hideLoading");
e.messager.alert("数据查询", t, "warning");
return
}
if (!t) {
return
}
n.LastloadData.total = t.total;
n.LastloadData.rows = [];
e.each(t.rows,
function(t, i) {
n.LastloadData.rows.push(e.extend({},
i))
});
n.prodTt.datagrid("loadData", t);
n.myFoodDialog.find("div.datagrid-header-check>input").prop("checked", false);
var i = e.map(n.rowsArry,
function(e) {
return e.id
});
e.each(t.rows,
function(t, a) {
var r = e.inArray(a.id, i);
if (r != -1) {
n.prodTt.datagrid("updateRow", {
index: t,
row: {
F_Quantity: n.rowsArry[r].F_Quantity
}
});
n.prodTt.datagrid("checkRow", t)
}
});
n.myFoodDialog.bs_dialog("hideLoading");
if (!e.browser.useapp) {
n.prodTt.datagrid("ex_setEdit")
}
}
})
};
var S = function(t) {
var i = e.data(t, "myFood");
if (i) {
var n = i.options;
i.prodTt.datagrid("unselectAll")
}
};
var w = function(t) {
var i = e.data(t, "myFood");
var n = i.options;

n.ischecktrueorfalse = false;
if (i.spanSeTag) {
i.spanSeTag.show()
}
var a = i.prodTt.datagrid("options");
a.singleSelect = n.ischecktrueorfalse;
a.checkOnSelect = !n.ischecktrueorfalse;
a.selectOnCheck = !n.ischecktrueorfalse;
i.prodTt.datagrid("showColumn", "checked")
};
var y = function(t) {
var i = e.data(t, "myFood");
if (!i.isSetUI) {
return
}
var n = i.options;
n.ischecktrueorfalse = true;
if (i.spanSeTag) {
i.spanSeTag.hide()
}
var a = i.prodTt.datagrid("options");
a.singleSelect = n.ischecktrueorfalse;
a.checkOnSelect = !n.ischecktrueorfalse;
a.selectOnCheck = !n.ischecktrueorfalse;
i.prodTt.datagrid("hideColumn", "checked")
};

})(jQuery);
...全文
154 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
C罗子 2017-06-24
  • 打赏
  • 举报
回复
引用 1 楼 qq_29594393 的回复:
插件的写法,一个自执行的闭包,里面唯一用到的全局变量是jQuery,也就是基于jQuery的插件, 有很多类似的 插件,可以参考,语法并没有特殊之处
能给提供个解释这种写法的博客或者网站的链接吗?
当作看不见 2017-06-24
  • 打赏
  • 举报
回复
http://blog.csdn.net/liujie19901217/article/details/51815997 书的话 ,可以参考<JavaScript框架设计> 下载频道免费下载一个
当作看不见 2017-06-23
  • 打赏
  • 举报
回复
插件的写法,一个自执行的闭包,里面唯一用到的全局变量是jQuery,也就是基于jQuery的插件, 有很多类似的 插件,可以参考,语法并没有特殊之处

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧