1/* 2 By Osvaldas Valutis, www.osvaldas.info 3 Available for use under the MIT License 4*/ 5 6;( function( $, window, document, undefined ) 7{ 8 'use strict'; 9 10 var $this = $(), 11 settings = {}, 12 lastKeyUp = 0, 13 keyUpEvent = false, 14 dpTimeout = false, 15 isPaused = false, 16 17 navigate = function() 18 { 19 var $item = $(); 20 21 if( keyUpEvent.keyCode == settings.keyCodeLeft && settings.prev ) 22 $item = $this.find( settings.prev ); 23 24 else if( keyUpEvent.keyCode == settings.keyCodeRight && settings.next ) 25 $item = $this.find( settings.next ); 26 27 if( !$item.length && settings.num && settings.numCurrent ) 28 { 29 $item = $this.find( settings.numCurrent ); 30 if( $item.length ) $item = keyUpEvent.keyCode == settings.keyCodeLeft ? $item.prev( settings.num ) : $item.next( settings.num ); 31 } 32 33 if( $item.length ) 34 { 35 $item = $item.find( 'a' ); 36 if( $item.length ) 37 { 38 keyUpEvent.preventDefault(); 39 $item.get( 0 ).click(); 40 } 41 } 42 }; 43 44 $( document ).on( 'keyup.keyboardPagination', function( e ) 45 { 46 keyUpEvent = e; 47 48 if( !$this.length || isPaused || ( keyUpEvent.keyCode != settings.keyCodeLeft && keyUpEvent.keyCode != settings.keyCodeRight ) ) 49 return true; 50 51 if( settings.first || settings.last ) 52 { 53 if( new Date() - lastKeyUp <= settings.doublePressInt ) 54 { 55 clearTimeout( dpTimeout ); 56 57 var $item = $(); 58 59 if( keyUpEvent.keyCode == settings.keyCodeLeft && settings.first ) 60 $item = $this.find( settings.first ); 61 62 else if( keyUpEvent.keyCode == settings.keyCodeRight && settings.last ) 63 $item = $this.find( settings.last ); 64 65 if( $item.length ) 66 { 67 $item = $item.find( 'a' ); 68 if( $item.length ) 69 { 70 keyUpEvent.preventDefault();
71 $item.get( 0 ).click(); 72 } 73 } 74 if( !$item.length ) navigate(); 75 } 76 else dpTimeout = setTimeout( navigate, settings.doublePressInt ); 77 78 lastKeyUp = new Date(); 79 } 80 else navigate(); 81 }); 82 83 $.fn.keyboardPagination = function( options ) 84 { 85 settings = $.extend( 86 { 87 num: false, 88 numCurrent: false, 89 prev: false, 90 next: false, 91 first: false, 92 last: false, 93 doublePressInt: 250, 94 keyCodeLeft: 37, 95 keyCodeRight: 39 96 }, 97 options ); 98 99 $this = $( this ).last(); 100 101 isPaused = false; 102 103 this.resume = function() 104 { 105 isPaused = false; 106 return this; 107 }; 108 109 this.pause = function() 110 { 111 isPaused = true; 112 return this; 113 }; 114 115 return this; 116 }; 117})( jQuery, window, document );
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.