Tengo el siguiente código, que emula un clic en los eventos de tecla abajo a la izquierda o a la derecha. Esto se utiliza como parte de una presentación de diapositivas galería:Cómo determinar si el elemento es el último o el primer elemento secundario de los elementos principales en javascript/jquery?
$(document).keydown(function (e) {
if(e.keyCode == 37) { // left
$(".thumb-selected").prev().trigger('click');
}
else if(e.keyCode == 39) { // right
$("thumb-selected").next().trigger('click');
}
});
Esencialmente se recoge la siguiente o anterior de hermanos (dependiendo de la tecla pulsada) y llamar al evento click que a su vez mostrar la imagen apropiada en la galería. Estas imágenes están todas almacenadas en una lista desordenada.
Donde estoy perplejo es que cuando se selecciona la primera o la última imagen y se presiona el botón izquierdo o derecho (respectivamente), quiero que aparezca la siguiente imagen en el extremo opuesto de la lista de imágenes. Por ejemplo, si se selecciona la primera imagen y se presiona la flecha hacia la izquierda; dado que no hay una imagen previa (o elemento li), obtendrá la última imagen en la lista. De esta forma, las teclas nunca pierden funcionalidad.
Hay una función en jquery que verificará si el elemento presente es el primero o el último hijo de su elemento primario, o devolverá su índice relativo a su elemento primario para que pueda comparar su índice con el tamaño() (número de hijos) de su elemento padre?
Se podría pedir al objeto padre lo fueron el primer/último los niños y comparar con el elemento actual. No tengo idea de rendimiento. –
El rendimiento no es un problema. Por lo que he leído, es imposible comparar dos elementos de selector (como objetos). Podría intentar comparar las identificaciones, pero no se establecen identificadores en los elementos de la lista, que el guión genera automáticamente. Estoy tratando de modificar la secuencia de comandos lo menos posible. – Prusprus