Enlazar keyboard a la navigation izquierda / derecha

Soy fotógrafo y tengo un website en el que no puedo editar la estructura de la "plantilla", pero puedo upload javascript / css, etc.

Quiero unir navigation siguiente / anterior al keyboard derecha / izquierda.

La estructura de los enlaces son:

<div class="image_navigation"> <h4>Image Navigation</h4> <ul> <li class="index"><a href="LINKURL">Index</a></li> <li class="previous"><a href="LINKURL">Previous</a></li> <li class="next"><a href="LINKURL">Next</a></li> </ul> </div> 

Me referí a esto y logré crear esto.

 $(function() {$(document).keyup(function(e) { switch(e.keyCode) { case 37 : window.location = $('li.prev').attr('href'); break; case 39 : window.location = $('li.next').attr('href'); break; }});}); 

Aquí es donde estoy atascado. No funciona porque supone que estoy refiriéndome a una label href pero me estoy refiriendo al li que la contiene.

¡Cualquier idea será altamente apreciada!

 window.location = $('li.next a').attr('href'); 

Encontré esta pregunta cuando busqué engañados en esta pregunta y decidí compartir el poco de jQuery que escribí para responder al que modificó para sus selectores:

 // when the document is ready, run this function jQuery(function( $ ) { var keymap = {}; // LEFT keymap[ 37 ] = "li.prev a"; // RIGHT keymap[ 39 ] = "li.next a"; $( document ).on( "keyup", function(event) { var href, selector = keymap[ event.which ]; // if the key pressed was in our map, check for the href if ( selector ) { href = $( selector ).attr( "href" ); if ( href ) { // navigate where the link points window.location = href; } } }); }); 
 $(function() {$(document).keyup(function(e) { switch(e.keyCode) { case 37 : window.location = $('li.prev a').attr('href'); break; case 39 : window.location = $('li.next a').attr('href'); break; }});}); 

$ ('li.next') se dirige a todos los elementos de la list con la class 'siguiente', y eso es todo, no tiene conocimiento del contenido del elemento de la list.

Si quieres el href de la label a, necesitas ir un poco más profundo ($ ('li.next a') o $ (li.next '). Find (' a ')) – tu código original estaba buscando el atributo href del elemento de la list en sí (que, por supuesto, no existe, ya que los elementos de la list no tienen attributes href).

Debe dirigir la <a> dentro de <li>. Veo que está usando jquery [y asume que ha incluido el file jquery necesario en el encabezado].

http://api.jquery.com/child-selector/ es un buen lugar para aprender acerca de los selectores de jquery.

Asumiendo que todo lo demás en tu código es correcto, puedes lograr lo que creo que estás buscando con

 $(function() { $(document).keyup(function(e) { switch(e.keyCode) { case 37 : window.location = $('li.previous a').attr('href'); break; case 39 : window.location = $('li.next a').attr('href'); break; } }); });