EasySlider1.7 - Как получить стрелки на втором слайдере для работы?

Я разобрался как иметь 2 слайдера на странице из других постов. Единственная заключительная проблема, которую я имею, состоит в том, что стрелки Prev & Next на втором слайдере, кажется, не работают.

Я взял эту страницу у кого-то еще, кто изначально создал первый слайдер, и совсем не разбираюсь в коде. Я использую в основном Wordpress в течение многих лет. Учусь, как я иду.

Вот эта страница: http://ginaketchum.com/

Код в файле index.html:

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/easySlider1.7.js"></script>
<script type="text/javascript">
  $(document).ready(function(){ 
   $("#slider").easySlider({
    auto: true, 
    continuous: true
   });
   $("#slider2").easySlider({
    auto: true, 
    continuous: true
   });
  }); 
 </script>

Код в easySlider1.7.js:

(function($) {

 $.fn.easySlider = function(options){
   
  // default configuration properties
  var defaults = {   
   prevId:   'prevBtn',
   prevText:   'Previous',
   nextId:   'nextBtn', 
   nextText:   'Next',
   controlsShow: true,
   controlsBefore: '',
   controlsAfter: '', 
   controlsFade: true,
   firstId:   'firstBtn',
   firstText:   'First',
   firstShow:  false,
   lastId:   'lastBtn', 
   lastText:   'Last',
   lastShow:  false,    
   vertical:  false,
   speed:    500,
   auto:   false,
   pause:   5000,
   continuous:  false, 
   numeric:   false,
   numericId:   'controls'
  }; 
  
  var options = $.extend(defaults, options);  
    
  this.each(function() {  
   var obj = $(this);     
   var s = $("li", obj).length;
   var w = $("li", obj).width(); 
   var h = $("li", obj).height(); 
   var clickable = true;
   obj.width(w); 
   obj.height(h); 
   obj.css("overflow","hidden");
   var ts = s-1;
   var t = 0;
   $("ul", obj).css('width',s*w);   
   
   if(options.continuous){
    $("ul", obj).prepend($("ul li:last-child", obj).clone().css("margin-left","-"+ w +"px"));
    $("ul", obj).append($("ul li:nth-child(2)", obj).clone());
    $("ul", obj).css('width',(s+1)*w);
   };    
   
   if(!options.vertical) $("li", obj).css('float','left');
        
   if(options.controlsShow){
    var html = options.controlsBefore;    
    if(options.numeric){
     html += '<ol id="'+ options.numericId +'"></ol>';
    } else {
     if(options.firstShow) html += '<span id="'+ options.firstId +'"><a href=\"javascript:void(0);\">'+ options.firstText +'</a></span>';
     html += ' <span id="'+ options.prevId +'"><a href=\"javascript:void(0);\">'+ options.prevText +'</a></span>';
     html += ' <span id="'+ options.nextId +'"><a href=\"javascript:void(0);\">'+ options.nextText +'</a></span>';
     if(options.lastShow) html += ' <span id="'+ options.lastId +'"><a href=\"javascript:void(0);\">'+ options.lastText +'</a></span>';    
    };
    
    html += options.controlsAfter;      
    $(obj).after(html);          
   };
   
   if(options.numeric){         
    for(var i=0;i<s;i++){      
     $(document.createElement("li"))
      .attr('id',options.numericId + (i+1))
      .html('<a rel='+ i +' href=\"javascript:void(0);\">'+ (i+1) +'</a>')
      .appendTo($("#"+ options.numericId))
      .click(function(){       
       animate($("a",$(this)).attr('rel'),true);
      });             
    };       
   } else {
    $("a","#"+options.nextId).click(function(){  
     animate("next",true);
    });
    $("a","#"+options.prevId).click(function(){  
     animate("prev",true);    
    }); 
    $("a","#"+options.firstId).click(function(){  
     animate("first",true);
    });    
    $("a","#"+options.lastId).click(function(){  
     animate("last",true);    
    });    
   };
   
   function setCurrent(i){
    i = parseInt(i)+1;
    $("li", "#" + options.numericId).removeClass("current");
    $("li#" + options.numericId + i).addClass("current");
   };
   
   function adjust(){
    if(t>ts) t=0;  
    if(t<0) t=ts; 
    if(!options.vertical) {
     $("ul",obj).css("margin-left",(t*w*-1));
    } else {
     $("ul",obj).css("margin-left",(t*h*-1));
    }
    clickable = true;
    if(options.numeric) setCurrent(t);
   };
   
   function animate(dir,clicked){
    if (clickable){
     clickable = false;
     var ot = t;    
     switch(dir){
      case "next":
       t = (ot>=ts) ? (options.continuous ? t+1 : ts) : t+1;      
       break; 
      case "prev":
       t = (t<=0) ? (options.continuous ? t-1 : 0) : t-1;
       break; 
      case "first":
       t = 0;
       break; 
      case "last":
       t = ts;
       break; 
      default:
       t = dir;
       break; 
     }; 
     var diff = Math.abs(ot-t);
     var speed = diff*options.speed;      
     if(!options.vertical) {
      p = (t*w*-1);
      $("ul",obj).animate(
       { marginLeft: p }, 
       { queue:false, duration:speed, complete:adjust }
      );    
     } else {
      p = (t*h*-1);
      $("ul",obj).animate(
       { marginTop: p }, 
       { queue:false, duration:speed, complete:adjust }
      );     
     };
     
     if(!options.continuous && options.controlsFade){     
      if(t==ts){
       $("a","#"+options.nextId).hide();
       $("a","#"+options.lastId).hide();
      } else {
       $("a","#"+options.nextId).show();
       $("a","#"+options.lastId).show();     
      };
      if(t==0){
       $("a","#"+options.prevId).hide();
       $("a","#"+options.firstId).hide();
      } else {
       $("a","#"+options.prevId).show();
       $("a","#"+options.firstId).show();
      };     
     };    
     
     if(clicked) clearTimeout(timeout);
     if(options.auto && dir=="next" && !clicked){;
      timeout = setTimeout(function(){
       animate("next",false);
      },diff*options.speed+options.pause);
     };
   
    };
    
   };
   // init
   var timeout;
   if(options.auto){;
    timeout = setTimeout(function(){
     animate("next",false);
    },options.pause);
   };  
   
   if(options.numeric) setCurrent(0);
  
   if(!options.continuous && options.controlsFade){     
    $("a","#"+options.prevId).hide();
    $("a","#"+options.firstId).hide();    
   };    
   
  });
   
 };

})(jQuery);

Файл CSS:

/*Slider*/   

.graphic, #prevBtn, #nextBtn, #slider1prev, #slider1next {
margin:0;
padding:0;
display:block;
overflow:hidden;
text-indent:-8000px;
}
   
.container-slider{
margin:0 auto;
position:relative;
text-align:left;
width:900px;
background:#fff;
}

#slider ul, #slider li,
#slider2 ul, #slider2 li{
margin:0;
padding:0;
list-style:none;
}

#slider2{margin-top:1em;}

#slider li, #slider2 li{ 
width:900px;
height:396px;
overflow:hidden;
} 

#prevBtn, #nextBtn,
#slider1next, #slider1prev{
display:block;
width:30px;
height:77px;
position:absolute;
left:-35px;
top:160px;
z-index:1000;
}
 
#nextBtn, #slider1next{
left:905px;
}
              
#prevBtn a, #nextBtn a,
#slider1next a, #slider1prev a{
display:block;
position:relative;
width:29px;
height:51px;
background-image: url(../images/btn_prev2.png);
background-repeat: no-repeat;
background-position: 0 0;
}
 
#nextBtn a, #slider1next a{
background-image: url(../images/btn_next2.png);
background-repeat: no-repeat;
background-position: 0 0;
}  

ol#controls{
margin:1em 0;
padding:0;
height:28px; 
}

ol#controls li{
margin:0 10px 0 0; 
padding:0;
float:left;
list-style:none;
height:28px;
line-height:28px;
}

ol#controls li a{
float:left;
height:28px;
line-height:28px;
border:1px solid #ccc;
background:#DAF3F8;
color:#555;
padding:0 10px;
text-decoration:none;
}
  
ol#controls li.current a{
background:#5DC9E1;
color:#fff;
}

ol#controls li a:focus, #prevBtn a:focus, #nextBtn a:focus{outline:none;}
 
/*Slider*/
 

2 ответа

Измените id кнопок prev/next для второго слайдера, затем сделайте что-то вроде:

$("#slider2").easySlider({
    auto: true,
    continuous: true,
    nextId: "slider1next",
    prevId: "slider1prev"
});

Это изменение, похоже, сработало.

 $(document).ready(function(){ 
   $("#slider").easySlider({
    auto: true, 
    continuous: true,
    prevId: 'prevBtn',
                nextId: 'nextBtn'
   });
   $("#slider2").easySlider({
    auto: true, 
    continuous: true,
                nextId: "slider1next",
          prevId: "slider1prev"
   });
  });  

Другие вопросы по тегам