http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
http://www.w3.org/1999/xhtml">
<script language="javascript" type="text/javascript" src="Scripts/jquery-1.4.1.js"></script>
<script language="javascript" type="text/javascript" src="jquery.repeater.js"></script>
<script language="javascript" type="text/javascript">
var imgDataSrc = [
{ "Name": "dhz", "Age": "30" },
{ "Name": "wenting", "Age": "31" },
{ "Name": "SRH", "Age":"20"}];
</script>
<script language="javascript" type="text/javascript">
$("#myRepeater").repeater({
beforeItemDataBound: function (args) {
var msg = "";
if (args.dataItem.Age > 30) {
msg = "mm大于30";
} else {
msg = "nn小于30";
}
$.extend(args.dataItem, { Msg: msg });
},
itemTemplate: "
- 姓名 --{{Name}}:年纪--{{Age}}===={{Msg}}
- ",
itemDataBound: function (args) {
var data = args.dataItem;
var itemCnt = args.dataCnt;
itemCnt.find("span").each(function (i, e) {
$(e).click(function () {
alert($(this).html());
});
});
},
dataSrc: imgDataSrc
});
</script>
(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);