Changeset 47981 in spip-zone


Ignore:
Timestamp:
May 21, 2011, 11:17:50 AM (10 years ago)
Author:
cedric@…
Message:

Mise a jour en version 1.3.17.1 de la colorbox.
cf pour les patchs appliqués :
https://github.com/Cerdic/colorbox/commit/1ec7ddf05acd5368506ba0feebb03f58312d8fa8
https://github.com/Cerdic/colorbox/commit/4a4d524b52ff623307c8102b4ad7b5ce8d036e6e
https://github.com/Cerdic/colorbox/commit/6dce1981a44734d192487148b2eb411f3261ec7e
https://github.com/Cerdic/colorbox/commit/89a76c0da783f6bfbfcc9c049a24341aef38dbd3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/mediabox/javascript/jquery.colorbox.js

    r46562 r47981  
    1 // ColorBox v1.3.14 - a full featured, light-weight, customizable lightbox based on jQuery 1.3+
    2 // Copyright (c) 2010 Jack Moore - jack@colorpowered.com
     1// ColorBox v1.3.17.1 - a full featured, light-weight, customizable lightbox based on jQuery 1.3+
     2// Copyright (c) 2011 Jack Moore - jack@colorpowered.com
    33// Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
    4 // Amelioree pour SPIP
    5 
    6 (function ($, window) {
    7        
     4// + minWidth&minHeight support
     5// + colorbox_class support
     6(function ($, document, window) {
    87        var
    98        // ColorBox Default Settings.   
     
    2726                html: false,
    2827                iframe: false,
     28                fastIframe: true,
    2929                photo: false,
    3030                href: false,
     
    5252                overlayClose: true,             
    5353                escKey: true,
    54                 arrowKey: true
     54                arrowKey: true,
     55        top: false,
     56        bottom: false,
     57        left: false,
     58        right: false,
     59        fixed: false,
     60        data: false
    5561        },
    5662       
     
    6773        event_closed = prefix + '_closed',
    6874        event_purge = prefix + '_purge',
    69         event_loaded = prefix + '_loaded',
    7075       
    7176        // Special Handling for IE
    72         isIE = $.browser.msie && !$.support.opacity, // feature detection alone gave a false positive on at least one phone browser and on some development versions of Chrome.
     77        isIE = $.browser.msie && !$.support.opacity, // Detects IE6,7,8.  IE9 supports opacity.  Feature detection alone gave a false positive on at least one phone browser and on some development versions of Chrome, hence the user-agent test.
    7378        isIE6 = isIE && $.browser.version < 7,
    7479        event_ie6 = prefix + '_IE6',
     
    9499        $prev,
    95100        $close,
     101        $groupControls,
    96102
    97103        // Variables for cached values or use across multiple functions
     104        settings = {},
    98105        interfaceHeight,
    99106        interfaceWidth,
     
    102109        element,
    103110        index,
    104         settings,
     111        photo,
    105112        open,
    106113        active,
    107         closing = false,
     114        closing,
     115    handler,
     116    loadingTimer,
    108117       
    109118        publicMethod,
     
    115124
    116125        // jQuery object generator to reduce code size
    117         function $div(id, css) {
    118                 id = id ? ' id="' + prefix + id + '"' : '';
    119                 css = css ? ' style="' + css + '"' : '';
    120                 return $('<div' + id + css + '/>');
     126        function $div(id, cssText) {
     127                var div = document.createElement('div');
     128                if (id) {
     129            div.id = prefix + id;
     130        }
     131                div.style.cssText = cssText || '';
     132                return $(div);
    121133        }
    122134
     
    140152                        }
    141153                }
     154       
    142155                settings.rel = settings.rel || element.rel || 'nofollow';
    143156                settings.href = settings.href || $(element).attr('href');
    144157                settings.title = settings.title || element.title;
    145                 return settings;
     158       
     159        if (typeof settings.href === "string") {
     160            settings.href = $.trim(settings.href);
     161        }
    146162        }
    147163
     
    195211                                stop();
    196212                        }
    197                 }
     213                } else {
     214            $box.removeClass(className + "off " + className + "on");
     215        }
    198216        }
    199217
     
    203221                        element = elem;
    204222                       
    205                         settings = process($.extend({}, $.data(element, colorbox)));
     223                        process($.extend(settings, $.data(element, colorbox)));
    206224                       
    207225                        $related = $(element);
     
    254272                                        $window.bind('resize.' + event_ie6 + ' scroll.' + event_ie6, function () {
    255273                                                $overlay.css({width: $window.width(), height: $window.height(), top: $window.scrollTop(), left: $window.scrollLeft()});
    256                                         }).trigger('scroll.' + event_ie6);
     274                                        }).trigger('resize.' + event_ie6);
    257275                                }
    258276                               
    259277                                trigger(event_open, settings.onOpen);
    260278                               
    261                                 $current.add($prev).add($next).add($slideshow).add($title).hide();
     279                                $groupControls.add($title).hide();
    262280                               
    263281                                $close.html(settings.close).show();
     
    295313                        $.data(this, colorbox, $.extend({}, $.data(this, colorbox) || defaults, options));
    296314                        var eltclass = $(this).attr('class');
    297                          
    298                         if (eltclass.indexOf("boxWidth-")!==-1) { 
    299                                 var w = eltclass.match(/boxWidth-([^\s'">]*)/); 
    300                                 w = w[1].replace(/pc/,'%'); // % not allowed in html attribute ; use 100pc instead of 100% 
    301                                 $.data(this, colorbox, $.extend($.data(this, colorbox),{width:w})); 
    302                         }
    303                         if (eltclass.indexOf("boxHeight-")!==-1) { 
    304                                 var h = eltclass.match(/boxHeight-([^\s'">]*)/); 
    305                                 h = h[1].replace(/pc/,'%'); // % not allowed in html attribute ; use 100pc instead of 100% 
    306                                 $.data(this, colorbox, $.extend($.data(this, colorbox),{height:h})); 
    307                         }
    308                         if (eltclass.indexOf("boxIframe")!==-1) { 
    309                                 $.data(this, colorbox, $.extend($.data(this, colorbox),{iframe:true})); 
    310                         }
    311                         if (eltclass.indexOf("boxSlideshow_off")!==-1) { 
    312                                 $.data(this, colorbox, $.extend($.data(this, colorbox),{slideshow:false})); 
     315
     316                        if (eltclass.indexOf("boxWidth-")!==-1) {
     317                                var w = eltclass.match(/boxWidth-([^\s'">]*)/);
     318                                w = w[1].replace(/pc/,'%'); // % not allowed in html attribute ; use 100pc instead of 100%
     319                                $.data(this, colorbox, $.extend($.data(this, colorbox),{width:w}));
     320                        }
     321                        if (eltclass.indexOf("boxHeight-")!==-1) {
     322                                var h = eltclass.match(/boxHeight-([^\s'">]*)/);
     323                                h = h[1].replace(/pc/,'%'); // % not allowed in html attribute ; use 100pc instead of 100%
     324                                $.data(this, colorbox, $.extend($.data(this, colorbox),{height:h}));
     325                        }
     326                        if (eltclass.indexOf("boxIframe")!==-1) {
     327                                $.data(this, colorbox, $.extend($.data(this, colorbox),{iframe:true}));
     328                        }
     329                        if (eltclass.indexOf("boxSlideshow_off")!==-1) {
     330                                $.data(this, colorbox, $.extend($.data(this, colorbox),{slideshow:false}));
    313331                        }
    314332                        $(this).addClass(boxElement);
     
    334352                // Create & Append jQuery Objects
    335353                $window = $(window);
    336                 $box = $div().attr({id: colorbox, 'class': (isIE ? prefix + 'IE ' : '')+colorbox_class});
     354                $box = $div().attr({id: colorbox, 'class': (isIE ? prefix + (isIE6 ? 'IE6' : 'IE') : '')+colorbox_class});
    337355                $overlay = $div("Overlay", isIE6 ? 'position:absolute' : '').hide();
    338356               
     
    386404                $box.css({"padding-bottom": interfaceHeight, "padding-right": interfaceWidth}).hide();
    387405               
    388                 // Setup button events.
    389                 $next.click(publicMethod.next);
    390                 $prev.click(publicMethod.prev);
    391                 $close.click(publicMethod.close);
     406        // Setup button events.
     407        $next.click(function () {
     408            publicMethod.next();
     409        });
     410        $prev.click(function () {
     411            publicMethod.prev();
     412        });
     413        $close.click(function () {
     414            publicMethod.close();
     415        });
     416               
     417                $groupControls = $next.add($prev).add($current).add($slideshow);
    392418               
    393419                // Adding the 'hover' class allowed the browser to load the hover-state
     
    395421                $content.children().removeClass('hover');
    396422               
    397                 $('.' + boxElement).live('click', function (e) {
    398                         // checks to see if it was a non-left mouse-click and for clicks modified with ctrl, shift, or alt.
    399                         if (!((e.button !== 0 && typeof e.button !== 'undefined') || e.ctrlKey || e.shiftKey || e.altKey)) {
    400                                 e.preventDefault();
    401                                 launch(this);
    402                         }
    403                 });
    404                
     423
     424
     425       
    405426                $overlay.click(function () {
    406427                        if (settings.overlayClose) {
     
    410431               
    411432                // Set Navigation Key Bindings
    412                 $(document).bind("keydown", function (e) {
    413                         if (open && settings.escKey && e.keyCode === 27) {
     433                $(document).bind('keydown.' + prefix, function (e) {
     434            var key = e.keyCode;
     435                        if (open && settings.escKey && key === 27) {
    414436                                e.preventDefault();
    415437                                publicMethod.close();
    416438                        }
    417                         if (open && settings.arrowKey && !active && $related[1]) {
    418                                 if (e.keyCode === 37 && (index || settings.loop)) {
     439                        if (open && settings.arrowKey && $related[1]) {
     440                                if (key === 37) {
    419441                                        e.preventDefault();
    420442                                        $prev.click();
    421                                 } else if (e.keyCode === 39 && (index < $related.length - 1 || settings.loop)) {
     443                                } else if (key === 39) {
    422444                                        e.preventDefault();
    423445                                        $next.click();
     
    429451        publicMethod.remove = function () {
    430452                $box.add($overlay).remove();
    431                 $('.' + boxElement).die('click').removeData(colorbox).removeClass(boxElement);
     453                $('.' + boxElement).removeData(colorbox).removeClass(boxElement);
    432454        };
    433455
    434456        publicMethod.position = function (speed, loadedCallback) {
    435                 var
    436                 animate_speed,
     457        var animate_speed, top = 0, left = 0;
     458       
     459        // remove the modal so that it doesn't influence the document width/height       
     460        $box.hide();
     461       
     462        if (settings.fixed && !isIE6) {
     463            $box.css({position: 'fixed'});
     464        } else {
     465            top = $window.scrollTop();
     466            left = $window.scrollLeft();
     467            $box.css({position: 'absolute'});
     468        }
     469       
    437470                // keeps the top and left positions within the browser's viewport.
    438                 posTop = Math.max(document.documentElement.clientHeight - settings.h - loadedHeight - interfaceHeight, 0) / 2 + $window.scrollTop(),
    439                 posLeft = Math.max($window.width() - settings.w - loadedWidth - interfaceWidth, 0) / 2 + $window.scrollLeft();
    440                
     471        if (settings.right !== false) {
     472            left += Math.max($window.width() - settings.w - loadedWidth - interfaceWidth - setSize(settings.right, 'x'), 0);
     473        } else if (settings.left !== false) {
     474            left += setSize(settings.left, 'x');
     475        } else {
     476            left += Math.max($window.width() - settings.w - loadedWidth - interfaceWidth, 0) / 2;
     477        }
     478       
     479        if (settings.bottom !== false) {
     480            top += Math.max(document.documentElement.clientHeight - settings.h - loadedHeight - interfaceHeight - setSize(settings.bottom, 'y'), 0);
     481        } else if (settings.top !== false) {
     482            top += setSize(settings.top, 'y');
     483        } else {
     484            top += Math.max(document.documentElement.clientHeight - settings.h - loadedHeight - interfaceHeight, 0) / 2;
     485        }
     486       
     487        $box.show();
     488       
    441489                // setting the speed to 0 to reduce the delay between same-sized content.
    442490                animate_speed = ($box.width() === settings.w + loadedWidth && $box.height() === settings.h + loadedHeight) ? 0 : speed;
    443                
     491       
    444492                // this gives the wrapper plenty of breathing room so it's floated contents can move around smoothly,
    445493                // but it has to be shrank down around the size of div#colorbox when it's done.  If not,
     
    453501                }
    454502               
    455                 $box.dequeue().animate({width: settings.w + loadedWidth, height: settings.h + loadedHeight, top: posTop, left: posLeft}, {
     503                $box.dequeue().animate({width: settings.w + loadedWidth, height: settings.h + loadedHeight, top: top, left: left}, {
    456504                        duration: animate_speed,
    457505                        complete: function () {
     
    508556                }
    509557               
    510                 var photo,
    511                 speed = settings.transition === "none" ? 0 : settings.speed;
     558                var speed = settings.transition === "none" ? 0 : settings.speed;
    512559               
    513560                $window.unbind('resize.' + prefix);
     
    537584               
    538585                // floating the IMG removes the bottom line-height and fixed a problem where IE miscalculates the width of the parent element as 100% of the document width.
    539                 $('#' + prefix + 'Photo').css({cssFloat: 'none', marginLeft: 'auto', marginRight: 'auto'});
    540                
     586                //$(photo).css({'float': 'none', marginLeft: 'auto', marginRight: 'auto'});
     587               
     588        $(photo).css({'float': 'none'});
     589       
    541590                // Hides SELECT elements in IE6 because they would otherwise sit on top of the overlay.
    542591                if (isIE6) {
     
    547596                        });
    548597                }
    549                                
     598               
    550599                function setPosition(s) {
    551                         var prev, prevSrc, next, nextSrc, total = $related.length, loop = settings.loop;
    552600                        publicMethod.position(s, function () {
    553                                 function defilter() {
    554                                         if (isIE) {
    555                                                 //IE adds a filter when ColorBox fades in and out that can cause problems if the loaded content contains transparent pngs.
    556                                                 $box[0].style.filter = false;
    557                                         }
    558                                 }
     601                                var prev, prevSrc, next, nextSrc, total = $related.length, iframe, complete;
    559602                               
    560603                                if (!open) {
    561604                                        return;
    562605                                }
     606                               
     607                function removeFilter() {
     608                    if (isIE) {
     609                        $box[0].style.removeAttribute('filter');
     610                    }
     611                }
     612               
     613                                complete = function () {
     614                    clearTimeout(loadingTimer);
     615                                        $loadingOverlay.hide();
     616                                        trigger(event_complete, settings.onComplete);
     617                                };
    563618                               
    564619                                if (isIE) {
     
    569624                                }
    570625                               
    571                                 $loaded.show();
    572                                
    573                                 trigger(event_loaded);
    574                                
    575                                 $title.show().html(settings.title);
     626                                $title.html(settings.title).add($loaded).show();
    576627                               
    577628                                if (total > 1) { // handle grouping
     
    580631                                        }
    581632                                       
    582                                         $next[(loop || index < total - 1) ? "show" : "hide"]().html(settings.next);
    583                                         $prev[(loop || index) ? "show" : "hide"]().html(settings.previous);
     633                                        $next[(settings.loop || index < total - 1) ? "show" : "hide"]().html(settings.next);
     634                                        $prev[(settings.loop || index) ? "show" : "hide"]().html(settings.previous);
    584635                                       
    585636                                        prev = index ? $related[index - 1] : $related[total - 1];
     
    606657                                                }
    607658                                        }
    608                                 }
    609                                
    610                                 $loadingOverlay.hide();
    611                                
    612                                 if (settings.transition === 'fade') {
    613                                         $box.fadeTo(speed, 1, function () {
    614                                                 defilter();
     659                                } else {
     660                                        $groupControls.hide();
     661                                }
     662                               
     663                                if (settings.iframe) {
     664                                        iframe = $('<iframe/>').addClass(prefix + 'Iframe')[0];
     665                                       
     666                                        if (settings.fastIframe) {
     667                                                complete();
     668                                        } else {
     669                                                $(iframe).one('load', complete);
     670                                        }
     671                                        iframe.name = prefix + (+new Date());
     672                                        iframe.src = settings.href;
     673                                       
     674                                        if (!settings.scrolling) {
     675                                                iframe.scrolling = "no";
     676                                        }
     677                                       
     678                                        if (isIE) {
     679                        iframe.frameBorder = 0;
     680                                                iframe.allowTransparency = "true";
     681                                        }
     682                                       
     683                                        $(iframe).appendTo($loaded).one(event_purge, function () {
     684                                                iframe.src = "//about:blank";
    615685                                        });
    616686                                } else {
    617                                         defilter();
     687                                        complete();
     688                                }
     689                               
     690                                if (settings.transition === 'fade') {
     691                                        $box.fadeTo(speed, 1, removeFilter);
     692                                } else {
     693                    removeFilter();
    618694                                }
    619695                               
     
    621697                                        publicMethod.position(0);
    622698                                });
    623                                
    624                                 trigger(event_complete, settings.onComplete);
    625699                        });
    626700                }
     
    636710
    637711        publicMethod.load = function (launched) {
    638                 var href, img, setResize, prep = publicMethod.prep;
     712                var href, setResize, prep = publicMethod.prep;
    639713               
    640714                active = true;
     715               
     716                photo = false;
     717               
    641718                element = $related[index];
    642719               
    643720                if (!launched) {
    644                         settings = process($.extend({}, $.data(element, colorbox)));
     721                        process($.extend(settings, $.data(element, colorbox)));
    645722                }
    646723               
     
    662739                settings.minw = settings.w;
    663740                settings.minh = settings.h;
    664                
     741
    665742                // Re-evaluate the minimum width and height based on maxWidth and maxHeight values.
    666743                // If the width or height exceed the maxWidth or maxHeight, use the maximum values instead.
     
    669746                        settings.mw = settings.w && settings.w < settings.mw ? settings.w : settings.mw;
    670747                }
    671                 if(settings.minWidth){ 
    672                         settings.minw = setSize(settings.minWidth, 'x') - loadedWidth - interfaceWidth; 
    673                         settings.minw = settings.w && settings.w > settings.minw ? settings.w : settings.minw; 
     748                if(settings.minWidth){
     749                        settings.minw = setSize(settings.minWidth, 'x') - loadedWidth - interfaceWidth;
     750                        settings.minw = settings.w && settings.w > settings.minw ? settings.w : settings.minw;
    674751                }
    675752                if (settings.maxHeight) {
     
    677754                        settings.mh = settings.h && settings.h < settings.mh ? settings.h : settings.mh;
    678755                }
    679                 if(settings.minHeight){ 
    680                         settings.minh = setSize(settings.minHeight, 'y') - loadedHeight - interfaceHeight; 
    681                         settings.minh = settings.h && settings.h > settings.minh ? settings.h : settings.minh; 
    682                 }
    683                
     756                if(settings.minHeight){
     757                        settings.minh = setSize(settings.minHeight, 'y') - loadedHeight - interfaceHeight;
     758                        settings.minh = settings.h && settings.h > settings.minh ? settings.h : settings.minh;
     759                }
     760
    684761                href = settings.href;
    685762               
    686                 $loadingOverlay.show();
    687 
     763        loadingTimer = setTimeout(function () {
     764            $loadingOverlay.show();
     765        }, 100);
     766       
    688767                if (settings.inline) {
    689768                        // Inserts an empty placeholder where inline content is being pulled from.
     
    696775                        // IFrame element won't be added to the DOM until it is ready to be displayed,
    697776                        // to avoid problems with DOM-ready JS that might be trying to run in that iframe.
    698                         $box.one(event_loaded, function () {
    699                                 var $iframe = $("<iframe name='" + new Date().getTime() + "' frameborder=0" + (settings.scrolling ? "" : " scrolling='no'") + (isIE ? " allowtransparency='true'" : '') + " style='width:100%; height:100%; border:0; display:block;'/>");
    700                                 $iframe[0].src = settings.href;
    701                                 $iframe.appendTo($loaded).one(event_purge, function () {
    702                                         $iframe[0].src = '//about:blank';
    703                                 });
    704                         });
    705                        
    706777                        prep(" ");
    707778                } else if (settings.html) {
    708779                        prep(settings.html);
    709780                } else if (isImage(href)) {
    710                         img = new Image();
    711                         img.onload = function () {
     781                        $(photo = new Image())
     782                        .addClass(prefix + 'Photo')
     783                        .error(function () {
     784                                settings.title = false;
     785                                prep($div('Error').text('This image could not be loaded'));
     786                        })
     787                        .load(function () {
    712788                                var percent;
    713                                 img.onload = null;
    714                                 img.id = prefix + 'Photo';
    715                                 $(img).css({border: 'none', display: 'block', cssFloat: 'left'});
     789                                photo.onload = null; //stops animated gifs from firing the onload repeatedly.
     790                               
    716791                                if (settings.scalePhotos) {
    717792                                        setResize = function () {
    718                                                 img.height -= img.height * percent;
    719                                                 img.width -= img.width * percent;       
     793                                                photo.height -= photo.height * percent;
     794                                                photo.width -= photo.width * percent;   
    720795                                        };
    721                                         if (settings.mw && img.width > settings.mw) {
    722                                                 percent = (img.width - settings.mw) / img.width;
     796                                        if (settings.mw && photo.width > settings.mw) {
     797                                                percent = (photo.width - settings.mw) / photo.width;
    723798                                                setResize();
    724799                                        }
    725                                         if (settings.mh && img.height > settings.mh) {
    726                                                 percent = (img.height - settings.mh) / img.height;
     800                                        if (settings.mh && photo.height > settings.mh) {
     801                                                percent = (photo.height - settings.mh) / photo.height;
    727802                                                setResize();
    728803                                        }
     
    730805                               
    731806                                if (settings.h) {
    732                                         img.style.marginTop = Math.max(settings.h - img.height, 0) / 2 + 'px';
     807                                        photo.style.marginTop = Math.max(settings.h - photo.height, 0) / 2 + 'px';
    733808                                }
    734809                               
    735810                                if ($related[1] && (index < $related.length - 1 || settings.loop)) {
    736                                         $(img).css({cursor: 'pointer'}).click(publicMethod.next);
     811                                        photo.style.cursor = 'pointer';
     812                                        photo.onclick = function () {
     813                        publicMethod.next();
     814                    };
    737815                                }
    738816                               
    739817                                if (isIE) {
    740                                         img.style.msInterpolationMode = 'bicubic';
    741                                 }
    742                                
    743                                 setTimeout(function () { // Chrome will sometimes report a 0 by 0 size if there isn't pause in execution
    744                                         prep(img);
     818                                        photo.style.msInterpolationMode = 'bicubic';
     819                                }
     820                               
     821                                setTimeout(function () { // A pause because Chrome will sometimes report a 0 by 0 size otherwise.
     822                                        prep(photo);
    745823                                }, 1);
    746                         };
    747                        
    748                         setTimeout(function () { // Opera 10.6+ will sometimes load the src before the onload function is set
    749                                 img.src = href;
    750                         }, 1); 
     824                        });
     825                       
     826                        setTimeout(function () { // A pause because Opera 10.6+ will sometimes not run the onload function otherwise.
     827                                photo.src = href;
     828                        }, 1);
    751829                } else if (href) {
    752                         $loadingBay.load(href, function (data, status, xhr) {
    753                                 prep(status === 'error' ? 'Request unsuccessful: ' + xhr.statusText : $(this).children());
     830                        $loadingBay.load(href, settings.data, function (data, status, xhr) {
     831                                prep(status === 'error' ? $div('Error').text('Request unsuccessful: ' + xhr.statusText) : $(this).contents());
    754832                        });
    755833                }
    756834        };
    757 
     835       
    758836        // Navigates to the next page/image in a set.
    759837        publicMethod.next = function () {
    760                 if (!active) {
     838                if (!active && $related[1] && (index < $related.length - 1 || settings.loop)) {
    761839                        index = index < $related.length - 1 ? index + 1 : 0;
    762840                        publicMethod.load();
     
    765843       
    766844        publicMethod.prev = function () {
    767                 if (!active) {
     845                if (!active && $related[1] && (index || settings.loop)) {
    768846                        index = index ? index - 1 : $related.length - 1;
    769847                        publicMethod.load();
     
    774852        publicMethod.close = function () {
    775853                if (open && !closing) {
     854                       
    776855                        closing = true;
    777856                       
     
    782861                        $window.unbind('.' + prefix + ' .' + event_ie6);
    783862                       
    784                         $overlay.fadeTo('fast', 0);
    785                        
    786                         $box.stop().fadeTo('fast', 0, function () {
     863                        $overlay.fadeTo(200, 0);
     864                       
     865                        $box.stop().fadeTo(300, 0, function () {
     866                 
     867                                $box.add($overlay).css({'opacity': 1, cursor: 'auto'}).hide();
    787868                               
    788869                                trigger(event_purge);
    789870                               
    790871                                $loaded.remove();
    791                                
    792                                 $box.add($overlay).css({'opacity': 1, cursor: 'auto'}).hide();
    793872                               
    794873                                setTimeout(function () {
     
    807886
    808887        publicMethod.settings = defaults;
    809 
     888   
     889        // Bind the live event before DOM-ready for maximum performance in IE6 & 7.
     890    handler = function (e) {
     891        // checks to see if it was a non-left mouse-click and for clicks modified with ctrl, shift, or alt.
     892        if (!((e.button !== 0 && typeof e.button !== 'undefined') || e.ctrlKey || e.shiftKey || e.altKey)) {
     893            e.preventDefault();
     894            launch(this);
     895        }
     896    };
     897   
     898    if ($.fn.delegate) {
     899        $(document).delegate('.' + boxElement, 'click', handler);
     900    } else {
     901        $('.' + boxElement).live('click', handler);
     902    }
     903   
    810904        // Initializes ColorBox when the DOM has loaded
    811905        $(publicMethod.init);
    812906
    813 }(jQuery, this));
     907}(jQuery, document, this));
Note: See TracChangeset for help on using the changeset viewer.