Author Topic: Find link to previous/next Page with jQuery  (Read 968 times)

fischstäbchenbrenner

  • Guest
Find link to previous/next Page with jQuery
« on: April 22, 2015, 02:47:43 PM »
Voraussetzung:
Alle Menu-Items im Menu #nav (ggf. unten ändern, 2x)
a.menu-current ist der aktive menüpunkt.


Weiters braucht es ein
<div id="aprevnext"></div>
Und 2 Pfeil-Bildchen

CSS ungefähr:
Code: [Select]
#aprevnext {display:block; width:90px; height:27px; float:right;}
#aprevnext a.aprev {display:block; width:40px; height:27px; float:right;  background: url(img/prev.png) no-repeat center top}
#aprevnext a.anext {display:block; width:40px; height:27px; float:right;  background: url(img/next.png) no-repeat center top}

JS:
Diesen Code in das JS des Templates kopieren.

Code: [Select]
$( document ).ready(function() {
//....
findprevnext();
});

function findprevnext() {

var avorher = '/';
var aprev = '/';
var anext = '';
var count = 0;

if ($("#nav li a.menu-current").length == 0) { //is Startpage
anext = $("#nav li a:eq(0)" ).attr('href');
showprevnext('', anext );
//console.log( "startpage: " + anext);
return false;
}


$("#nav li a").each(function () {
a = $(this).attr('href');

if (anext == 'next') {
//console.log( "aprev: " + aprev );
anext = a;
showprevnext(aprev, anext ); //is Startpage
//console.log( "findprevnext stopped: " + count);
anext = 'break';
return false;
}

if ( $(this).hasClass('menu-current') ) {
//console.log( "a current: " + a );
aprev = avorher;
anext = 'next';
}
avorher = a;
count ++;
});
if (anext == 'break') {return false;}

//Nichts gefunden?
anext = ''; //kein Link
//anext = '/'; //oder Startseite
showprevnext(aprev, anext );

}

function showprevnext(aprev, anext ) {
if (anext != '') {an = '<a class="anext" href="'+anext+'"></a>';} else {an = '';}
if (aprev != '') {an += '<a class="aprev" href="'+aprev+'"></a>';}
$("#aprevnext").html(an);
}



Das ist wohl nicht die beste aller Möglichkeiten, aber sie funktioniert. Vielleicht zeigt jemand eine schnellere, einfachere Möglichkeit.

 

postern-length