aboutsummaryrefslogtreecommitdiff
path: root/js/reveal.js
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2013-02-03 02:00:17 -0500
committerHakim El Hattab <hakim.elhattab@gmail.com>2013-02-03 02:00:17 -0500
commit9b830131f77621b208c461e5ad7a2fb9c92a188d (patch)
tree4d45106e7d3fec2134ae6d6e920728ddd7dde89e /js/reveal.js
parentd182235f1fca671498ac354a9507c19f1c7dbe5a (diff)
downloadperl-software-in-gnu-guix-9b830131f77621b208c461e5ad7a2fb9c92a188d.tar
perl-software-in-gnu-guix-9b830131f77621b208c461e5ad7a2fb9c92a188d.tar.gz
fix error with removal of control button and progress bar event listeners (closes #323)
Diffstat (limited to 'js/reveal.js')
-rw-r--r--js/reveal.js58
1 files changed, 27 insertions, 31 deletions
diff --git a/js/reveal.js b/js/reveal.js
index 8092526..6553c8a 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -404,17 +404,17 @@ var Reveal = (function(){
}
if ( config.progress && dom.progress ) {
- dom.progress.addEventListener( 'click', preventAndForward( onProgressClick ), false );
+ dom.progress.addEventListener( 'click', onProgressClicked, false );
}
if ( config.controls && dom.controls ) {
var actionEvent = 'ontouchstart' in window ? 'touchstart' : 'click';
- dom.controlsLeft.forEach( function( el ) { el.addEventListener( actionEvent, preventAndForward( navigateLeft ), false ); } );
- dom.controlsRight.forEach( function( el ) { el.addEventListener( actionEvent, preventAndForward( navigateRight ), false ); } );
- dom.controlsUp.forEach( function( el ) { el.addEventListener( actionEvent, preventAndForward( navigateUp ), false ); } );
- dom.controlsDown.forEach( function( el ) { el.addEventListener( actionEvent, preventAndForward( navigateDown ), false ); } );
- dom.controlsPrev.forEach( function( el ) { el.addEventListener( actionEvent, preventAndForward( navigatePrev ), false ); } );
- dom.controlsNext.forEach( function( el ) { el.addEventListener( actionEvent, preventAndForward( navigateNext ), false ); } );
+ dom.controlsLeft.forEach( function( el ) { el.addEventListener( actionEvent, onNavigateLeftClicked, false ); } );
+ dom.controlsRight.forEach( function( el ) { el.addEventListener( actionEvent, onNavigateRightClicked, false ); } );
+ dom.controlsUp.forEach( function( el ) { el.addEventListener( actionEvent, onNavigateUpClicked, false ); } );
+ dom.controlsDown.forEach( function( el ) { el.addEventListener( actionEvent, onNavigateDownClicked, false ); } );
+ dom.controlsPrev.forEach( function( el ) { el.addEventListener( actionEvent, onNavigatePrevClicked, false ); } );
+ dom.controlsNext.forEach( function( el ) { el.addEventListener( actionEvent, onNavigateNextClicked, false ); } );
}
}
@@ -435,17 +435,17 @@ var Reveal = (function(){
}
if ( config.progress && dom.progress ) {
- dom.progress.removeEventListener( 'click', preventAndForward( onProgressClick ), false );
+ dom.progress.removeEventListener( 'click', onProgressClicked, false );
}
if ( config.controls && dom.controls ) {
var actionEvent = 'ontouchstart' in window ? 'touchstart' : 'click';
- dom.controlsLeft.forEach( function( el ) { el.removeEventListener( actionEvent, preventAndForward( navigateLeft ), false ); } );
- dom.controlsRight.forEach( function( el ) { el.removeEventListener( actionEvent, preventAndForward( navigateRight ), false ); } );
- dom.controlsUp.forEach( function( el ) { el.removeEventListener( actionEvent, preventAndForward( navigateUp ), false ); } );
- dom.controlsDown.forEach( function( el ) { el.removeEventListener( actionEvent, preventAndForward( navigateDown ), false ); } );
- dom.controlsPrev.forEach( function( el ) { el.removeEventListener( actionEvent, preventAndForward( navigatePrev ), false ); } );
- dom.controlsNext.forEach( function( el ) { el.removeEventListener( actionEvent, preventAndForward( navigateNext ), false ); } );
+ dom.controlsLeft.forEach( function( el ) { el.removeEventListener( actionEvent, onNavigateLeftClicked, false ); } );
+ dom.controlsRight.forEach( function( el ) { el.removeEventListener( actionEvent, onNavigateRightClicked, false ); } );
+ dom.controlsUp.forEach( function( el ) { el.removeEventListener( actionEvent, onNavigateUpClicked, false ); } );
+ dom.controlsDown.forEach( function( el ) { el.removeEventListener( actionEvent, onNavigateDownClicked, false ); } );
+ dom.controlsPrev.forEach( function( el ) { el.removeEventListener( actionEvent, onNavigatePrevClicked, false ); } );
+ dom.controlsNext.forEach( function( el ) { el.removeEventListener( actionEvent, onNavigateNextClicked, false ); } );
}
}
@@ -488,22 +488,6 @@ var Reveal = (function(){
}
/**
- * Prevents an events defaults behavior calls the
- * specified delegate.
- *
- * @param {Function} delegate The method to call
- * after the wrapper has been executed
- */
- function preventAndForward( delegate ) {
-
- return function( event ) {
- event.preventDefault();
- delegate.call( null, event );
- };
-
- }
-
- /**
* Causes the address bar to hide on mobile devices,
* more vertical space ftw.
*/
@@ -1733,7 +1717,9 @@ var Reveal = (function(){
*
* ( clickX / presentationWidth ) * numberOfSlides
*/
- function onProgressClick( event ) {
+ function onProgressClicked( event ) {
+
+ event.preventDefault();
var slidesTotal = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).length;
var slideIndex = Math.floor( ( event.clientX / dom.wrapper.offsetWidth ) * slidesTotal );
@@ -1743,6 +1729,16 @@ var Reveal = (function(){
}
/**
+ * Event handles for navigation control buttons.
+ */
+ function onNavigateLeftClicked( event ) { event.preventDefault(); navigateLeft(); }
+ function onNavigateRightClicked( event ) { event.preventDefault(); navigateRight(); }
+ function onNavigateUpClicked( event ) { event.preventDefault(); navigateUp(); }
+ function onNavigateDownClicked( event ) { event.preventDefault(); navigateDown(); }
+ function onNavigatePrevClicked( event ) { event.preventDefault(); navigatePrev(); }
+ function onNavigateNextClicked( event ) { event.preventDefault(); navigateNext(); }
+
+ /**
* Handler for the window level 'hashchange' event.
*/
function onWindowHashChange( event ) {