Así es como lo haría, para una solución a pequeña escala … Esto se puede adaptar fácilmente en un complemento jQuery.
List navigation .selected { background: yellow; } - one
- two
- three
- four
$(function () { var $li = $('li'), getIndex = function ( context, selector ) { for ( var i = 0, len = context.length; i -1 && $li.filter('.selected').length ) { current = getIndex( $li, '.selected'); if ( e.which === 38 ) { next = ( ( (current - 1) < 0 ) && $li.length - 1 ) || current -1; } if ( e.which === 40 ) { next = ( ( current === $li.length ) && current - $li.length ) || current +1; if ( next === $li.length ) { next = 0; } } $( $li[next] ).trigger('click'); } }); });
http://gist.github.com/622795
- ¿Qué plataforma es mejor para el desarrollo web?
- ¿Debo reescribir todos mis backends en JavaScript si no hay nada malo con ellos ahora?
- ¿Es razonablemente seguro el siguiente proceso como recuperación de 'contraseña olvidada'?
- ¿Cuáles son algunas comunidades en línea para desarrolladores de back-end?
- ¿Cómo trata NodeJS con múltiples solicitudes de muchos usuarios? Si cada usuario inicia 1-3 procesos que escriben pequeños bits de datos en la base de datos, ¿es escalable?