Bug Tracker

Changes between Initial Version and Version 2 of Ticket #7470


Ignore:
Timestamp:
Nov 11, 2010, 9:04:25 AM (9 years ago)
Author:
dmethvin
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #7470 – Description

    initial v2  
    66jQuery Code used to reproduce bug
    77
    8 For HTML and init code please use the test location
    9 
    10 {{{
    11 jQuery.fn.carousel = function(op){
    12         // merge the options over-top of the defaults
    13         op = $.extend({
    14                 left_btn:'',
    15                 right_btn:'',
    16                 list:'',
    17                 width:'0px',
    18                 _elements:[],
    19                 _current:0,
    20                 _locked:false
    21         }, op);
    22        
    23         // check for left_btn if not set throw error
    24         if(op.left_btn == ''){
    25                 throw "Error jQuery Carousel left_btn not defined";
    26         }
    27        
    28         // check that width is defined
    29         if(op.width == '0px'){
    30                 throw "Error jQuery Carousel width not defined";
    31         }
    32        
    33         // check for right_btn if not set throw error
    34         if(op.right_btn == ''){
    35                 throw "Error jQuery Carousel right_btn not defined";
    36         }
    37        
    38         // check for list if not set throw error
    39         if(op.left_btn == ''){
    40                 throw "Error jQuery Carousel list not defined";
    41         }
    42        
    43         // set up left button click event
    44         $(op.left_btn).click(function(){
    45                 // check for lock only run if lock is disabled
    46                 if(op._locked == false){
    47                         // activate lock
    48                         op._locked = true;
    49                         // save the currently open view
    50                         var last = op._current;
    51                         // set the current to the next view
    52                         if(op._current == 0){
    53                                 op._current = op._elements.length -1;
    54                         }else{
    55                                 op._current -= 1;
    56                         }       
    57                         // add the previus element to the beging
    58                         $("#carru").prepend($(op._elements[op._current]));
    59                        
    60                         $(op._elements[op._current]).css({width:"0px"});
    61                        
    62                         // set the currently live view to shrink to the left
    63                         $(op._elements[op._current]).animate(
    64                                 {
    65                                         width:op.width
    66                                 },
    67                                 1000,
    68                                 function(){
    69                                         $(op._elements[last]).remove();
    70                                         op._locked = false;
    71                                 }
    72                         );
    73                 }
    74         });
    75        
    76         // set up the right button click event
    77         $(op.right_btn).click(function(){
    78                 // check for lock only run if lock is disabled
    79                 if(op._locked == false){
    80                         // activate lock
    81                         op._locked = true;
    82                         // save the currently open view
    83                         var last = op._current;
    84                         // set the current to the next view
    85                         if(op._current == op._elements.length-1){
    86                                 op._current = 0;
    87                         }else{
    88                                 op._current += 1;
    89                         }
    90                        
    91                         // add the previus element to the beging
    92                         $("#carru").append($(op._elements[op._current]));
    93                        
    94                         // set the currently live view to shrink to the left
    95                         $(op._elements[last]).animate(
    96                                 {
    97                                         width:'0px'
    98                                 },
    99                                 1000,
    100                                 function(){
    101                                         $(op._elements[last]).remove();
    102                                         $(op._elements[last]).css({width:op.width});
    103                                         op._locked = false;
    104                                 }
    105                         );
    106                 }
    107         });
    108        
    109         // save all the li elements to a variable for access later
    110         $("li", op.list).each(function(){
    111                 $(this).css({position:'relative'});
    112                 op._elements[op._elements.length] = $(this);
    113         });
    114        
    115                
    116         // set the list to hide overflowing data
    117         $(op.list).css({overflow:"hidden"});
    118        
    119         // empty the list and set the new ul
    120         $(op.list).html("<ul id=\"carru\" style=\"width:999999px;display:block;height:inherit;padding:0;margin:0;\"></ul>");
    121        
    122         // add the first element to the live view
    123         $("#carru", op.list).append($(op._elements[0]));
    124 }
    125 }}}
     8http://jsfiddle.net/SVy8m/
    1269
    12710Now this has been tested in Safari, Google Chrome, IE9, IE8*, IE7*, Firefox 3, Firefox 4