87,910
社区成员
发帖
与我相关
我的任务
分享
<div class="lamp">
<a href="#" class="sublight pic1"><img src="ads/ad192.jpg" /></a>
<a href="#" class="sublight pic2"><img src="ads/ad606.jpg" /></a>
<a href="#" class="sublight pic3"><img src="ads/ad606_150.jpg" /></a>
<a href="#" class="sublight pic4"><img src="ads/ad192_150.jpg" /></a>
<a href="#" class="sublight pic5"><img src="ads/ad192_150_2.jpg" /></a>
<a href="#" class="sublight pic6"><img src="ads/ad192_150_3.jpg" /></a>
</div>
<script type="text/javascript">
var blockHighLight = (function(window, $, undefined){
。。。中间省略函数体
})(this, $);
blockHighLight(
".lamp", //父元素
".sublight", //子元素集
[
'192,450', //第一张图片的宽高
'606,300', //第二张图片的宽高
'606,150', //第三张图片的宽高
'192,150', //第四张图片的宽高
'192,150', //第五张图片的宽高
'192,150' //第六张图片的宽高
]
);
</script>
var blockHighLight = (function(window, $, undefined){
var p ,c,arr;//这里声明的变量在下面函数体里被赋值的时候,会重复被赋值,并以最后一次赋值为准,所以就没办法构造出多个lamp,其实是构造出来了,只是自身的配置会被别的覆盖。建议这里除了声明一些常规配置外,不要将在实际return的函数中会用到的变量声明在这里
return function(pdom,cdom,sizearr){
p =dom,c = cdom,arr=sizearr;
}
})(this, $);
改成这样
var blockHighLight = (function(window, $, undefined){
var config = {ver:'1.0',name:'blockHightLight',count:0};
function blockHighLight(pdom,cdom,sizearr){
var p ,c,arr;
p =dom,c = cdom,arr=sizearr;
config.count ++;
}
blockHighLight.version = config.ver;
blockHighLight.name = config.name;
return blockHighLight;
})(this, $);
不知道这样明白了没有。
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
就是暴露在外面的变量和内部变量可以不一至,然后在这个变量下面建立自己的代码库。
多个lamp可以处理合用同一个公共命名空间。
<script type="text/javascript">
// 高亮效果
var blockHighLight = (function(window, $, undefined){
var markers = [];
return function(boxCls, itemCls, sizeArr){
var box = $(boxCls);
itemCls = itemCls || "a";
box.find(itemCls).each(function(i){
var self = $(this);
var arr,w,h,marker;
if(sizeArr !== undefined){
arr = sizeArr[i].split(",");
w = arr[0];
h = arr[1];
}else{
w = self.find("img").attr("width");
h = self.find("img").attr("height");
}
marker = $('<div style="cursor:pointer;top:0;left:0;position:absolute;width:'+w+'px;height:'+h+'px;filter:alpha(opacity=0);opacity: 0;background-color:#000;"></div>');
self.append(marker);
self.mouseover(function(){
for(var i=0; i<markers.length; i++){
markers[i].show().css({"opacity":'0.2',"filter":"alpha(opacity=20)"});
}
marker.hide();
});
markers.push(marker);
});
box.mouseout(function(){
for(var i=0; i<markers.length; i++){
markers[i].css({"opacity":'0',"filter":"alpha(opacity=0)"});
}
})
}
})(this, $);
blockHighLight(
".lamp", //父元素
".sublight", //子元素集
[
'192,450', //第一张图片的宽高
'606,300', //第二张图片的宽高
'606,150', //第三张图片的宽高
'192,150', //第四张图片的宽高
'192,150', //第五张图片的宽高
'192,150' //第六张图片的宽高
]
);
</script>
<div class="lamp">
<a href="#" class="sublight pic1"><img src="ads/ad192.jpg" /></a>
<a href="#" class="sublight pic2"><img src="ads/ad606.jpg" /></a>
<a href="#" class="sublight pic3"><img src="ads/ad606_150.jpg" /></a>
<a href="#" class="sublight pic4"><img src="ads/ad192_150.jpg" /></a>
<a href="#" class="sublight pic5"><img src="ads/ad192_150_2.jpg" /></a>
<a href="#" class="sublight pic6"><img src="ads/ad192_150_3.jpg" /></a>
</div>
<div class="lamp22222222">
<a href="#" class="sublight pic1"><img src="ads/ad192.jpg" /></a>
<a href="#" class="sublight pic2"><img src="ads/ad606.jpg" /></a>
<a href="#" class="sublight pic3"><img src="ads/ad606_150.jpg" /></a>
<a href="#" class="sublight pic4"><img src="ads/ad192_150.jpg" /></a>
<a href="#" class="sublight pic5"><img src="ads/ad192_150_2.jpg" /></a>
<a href="#" class="sublight pic6"><img src="ads/ad192_150_3.jpg" /></a>
</div>