2011-09-04 8 views
5

Tengo una página con el anterior y el siguiente enlaces:Vaya a rel = próxima y rel = prev página utilizando izquierda y flecha de la derecha

<link rel="prev" href="http://camera.phor.net/cameralife/photos/11096&#63;referer=index.php"> 
<link rel="next" href="http://camera.phor.net/cameralife/photos/5679&#63;referer=index.php"> 

¿Es posible utilizar JavaScript para navegar por estos enlaces si el usuario presiona Izquierda flecha o flecha derecha? El enlace no debería activarse si están editando texto y si se presionó la flecha hacia la izquierda o hacia la derecha.

Esto se utilizará para simplificar la visualización de varias páginas de imágenes.

Respuesta

4

Sin jQuery: http://jsfiddle.net/UXPLt/1/.

document.onkeyup = function(e) { // key pressed 
    if(document.activeElement.nodeName === "INPUT" 
    || document.activeElement.nodeName === "TEXTAREA") { 
     return; // abort if focusing input box 
    } 

    var elems = document.getElementsByTagName("link"), 
     links = {}; 

    for(var i = 0; i < elems.length; i++) { // filter link elements 
     var elem = elems[i]; 
     if(elem.rel === "prev") { // add prev to links object 
      links.prev = elem; 
     } else if(elem.rel === "next") { // ad next to links object 
      links.next = elem; 
     } 
    } 

    if(e.keyCode === 37) { // left key 
     location.href = links.prev.href; 
    } else if(e.keyCode === 39) { // right key 
     location.href = links.next.href; 
    } 
}; 
+0

¡increíble! gracias –

4
$(document).keydown(function(e){ 
     if (e.keyCode == 37) { // left 
      $("a[rel='prev']").click(); 
      return false; 
     } else if (e.keyCode == 39) { // right 
      $("a[rel='next']").click(); 
      return false; 
     } 
    }); 
+0

No es un elemento ''. – pimvdb

+0

así que reemplace la línea de clic a algo como esto: location.href = $ ("a [rel = 'prev']") .prop ("href"); –

+0

¿Pero por qué 'a'? Supongo que es 'enlace' de la pregunta. – pimvdb

Cuestiones relacionadas