最近要做一個組件,取的資料是一樣的,但是不同的頁面調用有著不一樣的表形式,由於實效性等等,不能做成html緩衝的方式,所有有了這樣的設計.
(function($) {<br />$.fn.say8list =function(options){<br />var opts = $.extend({},$.fn.say8list.defaults, options||{});<br />//alert(opts.host);<br />return this.each(function(){<br />var $this = $(this);<br />var mc_data={id:'mc_1',title:'mc_title',user_id:1,user_name:'name'};<br />var fc_data ={id:'fc_1',title:'fc_title'};<br />var user_data ={id:1};<br />var re = $.fn.say8list.make_fc(opts,fc_data,user_data);<br />var main = $.fn.say8list.make_mc(opts,mc_data,re,user_data);<br />//alert(main);<br />if(opts.type=="user")<br />{<br />opts.json_url = $.fn.say8list.get_user_list(opts.url_param);<br />}<br />//alert(opts.json_url);<br />$this.append(main);<br />$this.append(opts.json_url);<br />});<br />};<br />$.fn.say8list.make_fc=function(options,fc_data,user_data){<br />var opts = $.extend({},$.fn.say8list.defaults, options||{});<br />return eval(opts.fc_str);<br />};<br />$.fn.say8list.make_mc=function(options,mc_data,fc_str,user_data){<br />var opts = $.extend({},$.fn.say8list.defaults, options||{});<br />return eval(opts.mc_str);<br />};<br />$.fn.say8list.get_user_list=function(url_param){<br />return "http://"+$.fn.say8list.defaults.host+"/user_list.php?type="+url_param[0]+"&sub="+url_param[1];<br />};<br />$.fn.say8list.defaults={<br />host:"t.51yuncai.com",<br />mc_str:"",<br />fc_str:"",<br />user_id:"",<br />json_url:"",<br />type:"",<br />url_param:{}<br />};<br />})(jQuery);<br />$(document).ready(function(){<br />var mc_str = "function sanshi(){ str='sanshi-'+fc_str+'-'+mc_data.title;if(mc_data.user_id==opts.user_id){return str+=mc_data.user_name}else{return str }} sanshi(); ";<br />var fc_str = "'sanshi'+fc_data.title+fc_data.id+'--'";<br />$("#show").say8list({fc_str:fc_str,mc_str:mc_str,user_id:1,type:'user',url_param:Array(1,2)});<br />});