记录一个批量创建对象的方式,如有错误,欢迎指正
之前有好些地方都需要创建一堆属性相同但又彼此独立的对象,比如轮播图,比如页脚分页等等,按平时而且这些东西通常也是使用一些插件,创建一个对象,例如轮播图插件swiper
//单个使用 var swiper = new Swiper(".swiper-container",{})
如果此时我有多个一样的轮播图,那么上面这段代码只会让第一个产生作用
那么此时写作
//批量创建 for(i=0;i<obj.length;i++){ $('.swiper-container').eq(i).addClass('eq'+i); //每个swiper添加一个自己的名字 new Swiper(".swiper-container.eq"+i,{}) //给每个swiper初始化 }
此时所有swiper初始化成功
但如果现在又有新的要求比如说我要加一个控制按钮
单个swiper写法是
//单个使用 var swiper = new Swiper(".swiper-container",{}); leftBtn.onmouseover = function(){ swiper.slideNext(); }
由于上面批量创建没有批量创建变量名,所以上面那种方法并不是很理想;
于是把写法改一改
var arr = []; //创建一个数组用于保存所有swiper; for(i=0;i<obj.length;i++){ $('.swiper-container').eq(i).addClass('eq'+i); //每个swiper添加一个自己的名字 arr.push( new Swiper(".swiper-container.eq"+i,{}) //给每个swiper初始化并添加到数组 ) //单独的leftBtn leftBtn.eq(i).onmouswover = function(){ arr[i].slideNext(); //使用 arr[i] 引用 } }
把对象丢进一个数组,然后引用数组便可直接引用对象了