Jquery 封装自定义控件Demo

我需要定义一个控件,控件本身支持全局修改属性,且有自己的私有方法

<html>
<head>
<script src="jquery-1.8.3.min.js"></script>
<script>
(function(){
	var _myWidget={
		id:null,
		el:null,
		
		_c:{
			alertText:"",
		},
		init:function(config){
			var self=this;
			
			var _c=config||{};
			if(_c.alertText&&_c.alertText){
				self._c.alertText=_c.alertText;
			}
			if(_c.textColor&&_c.textColor!=""){
				self._c.textColor=_c.textColor;
			}
			
			
			self._render();
		},
		_render:function(){
			var self=this;
			var _html='<input type="text" id="input_'+self.id+'" placeholder="'+self._c.alertText+'" style="color:'+self._c.textColor+'">';
			$(self.el).html(_html);
		},
		setValue:function(value){
			var self=this;
			
			$("#input_"+self.id).val(value);
		}
	}

	$.fn.MyWidget=function(options){
		var uuid=(new Date()).getTime();
		var _o=$.extend({},_myWidget);
		_o.id=uuid;
		_o.el=this;
		
		var defaults={
			alertText:"",
			textColor:"red"
		}
		//后面的覆盖前面的
		var _c=$.extend({},defaults,$.fn.MyWidget.defaults,options);
		_o.init(_c);
		
		return _o;
	}
})();
</script>

<script>
(function(){
	//统一改变控件的属性
	$.fn.MyWidget.defaults={
		textColor:"blue"
	}
	
	
})();
</script>

</head>

<body>
<div id="container"></div>
<script>
var w=$("#container").MyWidget({alertText:"请输入"});
//执行其他的方法
w.setValue("Jasion");
</script>
</body>
</html>




猜你喜欢

转载自jjjssh.iteye.com/blog/2380767