Javascript 插件实例与同一类的分离

Javascript 插件实例与同一类的分离,javascript,jquery,Javascript,Jquery,我创建了一个jQuery插件,它允许针对特定类创建滑块功能。现在,在这个场景中,如果有人创建了两个单独的类和两个单独的调用,那么分离就可以正常工作 问题:一个类可以有多个实例,然后将它们分离出来吗?当前,如果从缩略图中选择图像或使用prev和next功能,则两个实例上的图像都会更改 Jsfiddle: (函数($){ $.fn.thumbnailSlider=函数(选项){ var默认值={ thumbnailActivation:false, 回调:函数(){} }; var\u se=$.

我创建了一个jQuery插件,它允许针对特定类创建滑块功能。现在,在这个场景中,如果有人创建了两个单独的类和两个单独的调用,那么分离就可以正常工作

问题:一个类可以有多个实例,然后将它们分离出来吗?当前,如果从缩略图中选择图像或使用prev和next功能,则两个实例上的图像都会更改

Jsfiddle:

(函数($){
$.fn.thumbnailSlider=函数(选项){
var默认值={
thumbnailActivation:false,
回调:函数(){}
};
var\u se=$.extend(默认值、选项);
var$el=这个,
thumbnailHandler=$el.find('.product gallery super'),
targetImg=$el.find('.main image'),
superZoomParam=thumbnailHandler.find('.active thumbnail').data('image-index'),
导航=功能(方向){
current=thumbnailHandler.find('.active thumbnailHandler');
nextPrevious=findNextPreviousActive(方向);
current.removeClass('active-thumbnail');
nextPrevious.addClass('active-thumbnail');
targetImg.attr('src',nextPrevious.data('image');
enableDisableButtons();
},
findNextPreviousActive=函数(方向){
如果(方向==“下一步”){
previousNext=thumbnailHandler.find('.active thumbnail').nextAll().not('.comingSoon').first();
}否则{
previousNext=thumbnailHandler.find('.active thumbnail').prevAll().not('.comingSoon').first();
}
返回上一个下一个;
},
enableDisableButtons=函数(){
如果(findNextPreviousActive('next')。长度==0){
$el.find('.super-next').addClass('disabled').prop('disabled',true);
}否则{
$el.find('.super-next').removeClass('disabled').removeProp('disabled');
}
如果(findNextPreviousActive('prev')。长度==0){
$el.find('.super-prev').addClass('disabled').prop('disabled',true);
}否则{
$el.find('.super-prev').removeClass('disabled').removeProp('disabled');
}
},
thumbnailActivator=函数(){
如果(超级ZoomParam!=''){
thumbnailHandler.children().removeClass(“活动缩略图”);
thumbnailHandler.children().each(函数(索引、值){
如果(superZoomParam===索引){
$(this.addClass('active-thumbnail');
targetImg.attr('src',thumbnailHandler.find('active thumbnail').data('image'));
//NewLookImp.resizeBinder();
enableDisableButtons();
}
});
}
},
clickActivator=函数(){
thumbnailHandler.children()。on('click',函数(e){
e、 防止违约(e);
var zoomImg=$(this.attr('data-zoom-image');
var prodImg=$(this.attr('data-image');
var imgSrc=$(this.children().attr('src');
如果(imgSrc!='/images/imagecomingsoon_en.jpg'){
$(this).addClass(“活动缩略图”).sides().removeClass(“活动缩略图”);
targetImg.attr('src',prodImg);
targetImg.attr('data-zoom-image',zoomImg);
//NewLookImp.resizeBinder();
}否则{
console.log(prod.children());
prod.addClass(“即将推出”);
}
enableDisableButtons();
});
},
init=函数(){
对于(i=0;i<$el.size();i++){
_se.callback();
如果(使用缩略图激活){
_se.thumbnailActivator();
}
单击激活器();
$el.find('.super-prev')。单击(函数(){
导航(“prev”);
返回false;
});
$el.find('.super-next')。单击(函数(){
导航(“下一步”);
返回false;
});
}
};
init();
返回$el;
}
})(jQuery);
$('.mainElement').thumbnailSlider()

上
下一个
上
下一个