自定义 jQuery repeater 插件。学习用。。。
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
http://www.w3.org/1999/xhtml">
(function ($) {
$.fn.repeater = function (options) {
var opts = $.extend({}, $.fn.repeater.defaults, options);
var len = opts.dataSrc.length;
var regCach = {};
for (var i = 0; i < len; i++) {
var data = opts.dataSrc[i];
if (opts.beforeItemDataBound) {
opts.beforeItemDataBound({ "dataItem": data });
}
var itemCnt = opts.itemTemplate;
for (var name in data) {
if (!regCach[name]) {
regCach[name] = new RegExp("{{" + name + "}}", "gi");
}
itemCnt = itemCnt.replace(regCach[name], data[name]);
}
var itemJQ = $(itemCnt);
if (opts.itemDataBound) {
opts.itemDataBound({ "dataItem": data, "dataCnt": itemJQ });
}
itemJQ.appendTo(this);
}
return this;
}
$.fn.repeater.defaults = {
itemTemplate: "",
//执行数据绑定之前的操作,可以对数据进行一次处理并.调用参数{"dataItem":data };
beforeItemDataBound: null, //
// 数据绑定完成之后的操作。返回生成新的jQuery对象 .调用参数
// 返回值:新的jQuery对象
// {"dataItem":data,"dataCnt":itemCnt}
// data:原始数据或是经过 beforeItemDataBound 处理过的数据。
// itemCnt :模板数据格式化后的 jQuery对象。
itemDataBound: null,
dataSrc: []
}
})(jQuery);