buckwilson / Lightbox_me

An easy to use lightbox plugin for jQuery
http://buckwilson.me/lightboxme
Other
433 stars 93 forks source link

Double clicking on the overlay very quickly(less than 250ms by default) will leave the lightbox shown and not able to be closed. #51

Open seanyao opened 11 years ago

seanyao commented 11 years ago

The Issue #17 is not fixed. It's better to fix this by moving the events binding logic into a single method and called after the animation completed.

You can reproduce this easily by extending the default overlaySpeed larger than 1000ms.

Code sample:

            Line #74:  $self[opts.appearEffect](opts.lightboxSpeed, function() { setOverlayHeight(); setSelfPosition(); opts.onLoad(); bindEvents()});
            function bindEvents(){
                $(window).resize(setOverlayHeight)
                     .resize(setSelfPosition)
                     .scroll(setSelfPosition);

            $(window).bind('keyup.lightbox_me', observeKeyPress);

            if (opts.closeClick) {
                $overlay.click(function(e) { closeLightbox(); e.preventDefault; });
            }
            $self.delegate(opts.closeSelector, "click", function(e) {
                closeLightbox(); e.preventDefault();
            });
            $self.bind('close', closeLightbox);
            $self.bind('reposition', setSelfPosition);
        }