views:

1585

answers:

3

Hello everyone,

I have been trying to implement the easyslider 1.7 plugin from cssglobe. Sorry could not post hyperlink because im a new user.

I uploaded the test files within the download and everything worked fine as expected. I then started to implement on my test site. I included all files and added the slider id within my site under the header "my work". It seems as if no scripts are being initialized. I've tried so many variations with no avail. A fresh set of eyes would be great.

The only thing i did different is i changed the name of "jquery.js" to "jqueryslider.js". I did this so it would not conflict with other plugins. I made this change on the demo site as well and it functioned properly.

I have also tried stripping all other scripts and styles with only the easyslider 1.7 styles and scripts with no luck.

Here is my test site

Here is the demo for easyslider. www.symplebytes.com/sliderdemo/01.html

Thank you,

Here is the code for 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:    800,
  auto:   false,
  pause:   2000,
  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);
A: 
$("#slider").easySlider is not a function

from firebug

looks like script is not linked properly

Funky Dude
Thanks for the find, i'll post the actual javascript, weird but the same function is called in the demo and it works with no problem.
Chris
A: 

Put this line right after title tag (and before the jquery plugin), and remove the original that you have in your code :

<script src="http://code.jquery.com/jquery-latest.pack.js" type="text/javascript"></script>

You must always load jquery core files before any plugin, otherwise they wont work.

yoda
hmm, weird now my other scripts (twitter/contact form) are not functioning. Thanks for the tip. Any reason why it would disable all other scripts I have running?
Chris
maybe you have instantiated jquery " (function($) { " twice with the same name. That is a common error, and blows up everything :)
yoda
A: 

Thanks for the replies, much appreciated. I ended up using the framework from google code and included all libraries 1..

This seemed to have made all my scripts run with no problems.

<script src="http://www.google.com/jsapi"&gt;&lt;/script&gt;  
    <script type="text/javascript">  
     // Load jQuery  
     google.load("jquery", "1");  

                google.setOnLoadCallback(function() {  
                // Your code goes here.  
                });  
        </script>
Chris