From c7a4c9fc7586f032645c4368aedecadcb9ffb402 Mon Sep 17 00:00:00 2001
From: Chris Hallberg <crhallberg@gmail.com>
Date: Wed, 24 Aug 2016 16:19:01 -0400
Subject: [PATCH] Remove dynamically generated VuFind.lightbox.closed event
 listeners to prevent stacking.

---
 themes/bootstrap3/js/lightbox.js | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/themes/bootstrap3/js/lightbox.js b/themes/bootstrap3/js/lightbox.js
index cf26313a7e6..c55eca08277 100644
--- a/themes/bootstrap3/js/lightbox.js
+++ b/themes/bootstrap3/js/lightbox.js
@@ -248,8 +248,9 @@ VuFind.register('lightbox', function Lightbox() {
     }
     // onclose behavior
     if ('string' === typeof $(form).data('lightboxOnclose')) {
-      document.addEventListener('VuFind.lightbox.closed', function lightboxClosed(ev) {
-        _evalCallback($(form).data('lightboxOnclose'), ev);
+      document.addEventListener('VuFind.lightbox.closed', function lightboxClosed(e) {
+        this.removeEventListener('VuFind.lightbox.closed', arguments.callee);
+        _evalCallback($(form).data('lightboxOnclose'), e);
       }, false);
     }
     // Loading
-- 
GitLab