==========html部分<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>==========JS部分<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>
==========现在说问题以上代表已经实现功能,如果一个页面上还有第二个lamp,JS部分应该怎么调用才好呢?
有lamp,lamp2,就是JS函数怎么共用,希望高手帮帮我,在此谢过了
<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>==========JS部分<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>
==========现在说问题以上代表已经实现功能,如果一个页面上还有第二个lamp,JS部分应该怎么调用才好呢?
有lamp,lamp2,就是JS函数怎么共用,希望高手帮帮我,在此谢过了
$('.lamp').highlight();
$('.lamp')返回的是class=lamp的一个array,然后plugin内部是对这个array forEach调用,逐个highlight
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
就是暴露在外面的变量和内部变量可以不一至,然后在这个变量下面建立自己的代码库。
多个lamp可以处理合用同一个公共命名空间。
(function($){
.......
})(jQuery_1_7);//lamp2导入1.9
(function($){
......
})(jQuery_1_9);
希望function(window, $, undefined这个函数体只出现一次,在外面多个LAMP引用上帮文章不知道是否可以?
中间省略函数体
})(this, $);你还省略中间函数体,你问题就出在这个函数体里。。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, $);不知道这样明白了没有。
<script type="text/javascript">
// 高亮效果
var blockHighLight = (function(window, $, undefined){
var ers = [];
return function(boxCls, itemCls, sizeArr){
var box = $(boxCls);
itemCls = itemCls || "a";
box.find(itemCls).each(function(i){
var self = $(this);
var arr,w,h,er;
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");
}
er = $('<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(er);
self.mouseover(function(){
for(var i=0; i<ers.length; i++){
ers[i].show().css({"opacity":'0.2',"filter":"alpha(opacity=20)"});
}
er.hide();
});
ers.push(er);
});
box.mouseout(function(){
for(var i=0; i<ers.length; i++){
ers[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>