function Navigator(fnArr, fwdSelector, bakSelector) {
this.fnArr = fnArr || [];
this.index = 0;
$(fwdSelector).click($.proxy(this.forward, this));
$(bakSelector).click($.proxy(this.reverse, this));
}
Navigator.prototype = {
rotate : function(direction) {
this.executeFn(Math.abs((this.index += direction) % this.fnArr.length));
},
forward : function() {
if (this.index < this.fnArr.length - 1) { this.rotate(+1); }
},
reverse : function() {
if (this.index > 0) { this.rotate(-1); }
},
executeFn : function(index) {
this.fnArr[index || 0]();
}
};
var fnArr = [
function function0() { $('p').text('0'); },
function function1() { $('p').text('1'); },
function function2() { $('p').text('2'); },
function function3() { $('p').text('3'); },
function function4() { $('p').text('4'); },
function function5() { $('p').text('5'); }
];
var nav = new Navigator(fnArr, '#forward', '#back');
nav.executeFn();
.pure-button-primary { font-weight: bold; }
p { width: 2.8em; text-align: center; font-weight: bold; font-size: 2em; margin: 0.25em; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/pure/0.6.0/buttons-min.css" rel="stylesheet"/>
<div class="pure-button pure-button-primary" id="back"><<</div>
<div class="pure-button pure-button-primary" id="forward">>></div>
<p></p>