js命名空间(解决不同js lib冲突问题)

//声明一个全局对象Namespace,用来注册命名空间
Namespace = new Object();
// 全局对象仅仅存在register函数,参数为名称空间全路径
Namespace.register = function(wk_NS)
{
    var nsArray = wk_NS.split('.');
    var sEval = "";
    var sNS = "";
    for (var i = 0; i < nsArray.length; i++)
    {
        if (i != 0) sNS += ".";
        sNS += nsArray[i];
        sEval += "if (typeof(" + sNS + ") == 'undefined') " + sNS + " = new Object();"
    }
    if (sEval != "") eval(sEval);
}
/***
 * test demo 
 * Namespace.register("wk_test");注册命名空间
 * wk_test.jquery=$;将$添加到该命名空间
 * var p=wk_test.jquery("a").size();通过命名空间获取值
 * alert(p);
 */

 

实例demo

-------------------------------------------------------------------------------------------------------------------------------------

<script type="text/javascript" src="namespace.js"></script>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="jquery.validate.min.js"></script>
<script type="text/javascript" >
var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" ");
	Namespace.register("wk_vada");
	wk_vada=$;

	wk_vada(document).ready(function() {
	wk_vada("#signupForm").validate({
        rules: {
        	name: "required",
        	keyword:"required"
	  	},
        messages: {
        	name: "请输入姓名",
       		keyword: "请输入姓名"
        	}
 	}); 
 </script> 
<script type="text/javascript" src="jquery.autocomplete.min.js"></script>
<script type="text/javascript" >
	Namespace.register("wk_auto");
	wk_auto=$;
	
	wk_auto('#keyword').autocomplete(data).result(function(event, data, formatted) {
	    alert(data);
	});
	alert(wk_auto instanceof  wk_vada); //false
</script>

 注:借鉴无私的开源者 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值