一 源码:
$.namespace = function() {
var a=arguments, o=null, i, j, d;
for (i=0; i<a.length; i=i+1) {
d=a[i].split(".");
o=window;
for (j=0; j<d.length; j=j+1) {
o[d[j]]=o[d[j]] || {};
o=o[d[j]];
}
}
return o;
};
二 使用方法:
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$.namespace("druid.index");
druid.index=function(){
var i,j; // 定义变量
return {
login:function(){
//login 方法的实现
},
submit:function(){
// submit 方法的实现
}
};
}();
//使用命名空间的函数
druid.index.login();
druid.index.submit();
三 事件命名空间的使用
对于 jQuery 而言,以下划线开始的命名空间会被保留。
event.namespace
$("p").on("custom.someNamespace",function(event){
alert(event.namespace);
});
$("p").on("custom.someNamespace",function(event){
alert(event.namespace);
});
$("p").click(function(event){
$(this).trigger("custom.someNamespace");
});
$("button").click(function(){
$("p").off("custom.someNamespace");
});
//或者
$("p").on("click.someNamespace",function(event){
console.log(event.handleObj.namespace);
});