自定义 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);

    posted on 2010-06-28 19:46  老代哥哥  阅读(199)  评论(0编辑  收藏  举报

    导航