设计模式就是要实践,网上看了太多理论文章,我将其使用到了我自己写的时间轴插件中,主要是用来做弹出框和遮罩层;
主要函数为这个公共函数:(有利于到数组去重的思想,毕竟是个公共方法,我们是支持每一种类型只创建一次)
var getInstance = function () {
var res = {};
return function (fn) {
if (res[fn]) {
return res[fn]
}
res[fn] = fn.call(this, arguments)
return res[fn];
}
}()
然后就是实践:
(具体代码太长,就不写出来了)
这个是遮罩层:
function createCoverDiv() {
var fixedDiv = document.createElement("div");
$(fixedDiv).addClass("fixBGDiv").attr("id", "fixedDiv")
return fixedDiv;
}
var fixedDiv = getInstance(createCoverDiv);
$("body").append(fixedDiv);
这个是弹出框:
function createPopUpBox() {
var popUpDiv = document.createElement("div");
$(fixedDiv).addClass("popUpDiv ").attr("id", "popUpDiv ")
return popUpDiv ;
}
var popUpBoxDiv = getInstance(createPopUpBox);
$("body").append(popUpBoxDiv);