jquery自定义插件命名空间有关问题
jquery自定义插件命名空间问题最近项目用到jquery和DWR,此两个框架一起用会出现冲突,解决的方法很简单。给j
jquery自定义插件命名空间问题
最近项目用到jquery和DWR,此两个框架一起用会出现冲突,解决的方法很简单。给jquery加上命名空间,如:var $j = jQuery.noConflict();以后jquery中在用到$的地方都用$j取代,这样就不会和dwr中的$冲突了。
这个问题解决了,另外一个问题却来了,如果我用$j定义,这样的话,我的js文件中所有的jquery的$地方都需要改成$j,如果一个只有两个还好,如果真有个几十个或者几百个,这简直是个噩梦。于是想到jquery官方插件中里面的(如blockui).js文件中里面也都用了$,而改变其命名空间后却不用更改其js文件中的$,很好奇他是怎么做的看了看源码,发现有这样的一句话
<script src="test.js" type="text/javascript"></script>
<script>
var $j = jQuery.noConflict();
function test1111(){
}
</script>
</head>
<body>
<input type=="text" value="" id="aa"/>
<input type="button" value="ttt" onclick="$j.test()"/>
</body>
</html>
外面已经用var $j = jQuery.noConflict();定义了命名空间,而test.js里面仍然可以用$.所以开发组件时一定要把function写在(function($){})(jQuery);内已防止修改命名空间后组件需要大动