Obecnie uczę się dialogu jQuery i chciałbymlubię używać go w moim pobocznym projekcie. Chcę dodać tabindex do div w oknie dialogowym tabulacji. Ale fokus idzie gdzie indziej, kiedy zakładam ostatni element w oknie dialogowym.
Chcę, aby fokus wrócił do pierwszego elementu, kiedy zakładam ostatni element. Czy istnieje sposób, aby zachować ostrość w oknie dialogowym?
Dzięki!
Odpowiedzi:
6 dla odpowiedzi № 1Dodaj zdarzenie naciśnięcia klawisza do ostatniego elementu, aby zignorować domyślną czynność tabulacji i ponownie ustaw fokus na pierwszym elemencie w oknie dialogowym.
Poniższy przykład zakłada, że ostatnim elementem jest last_element_id
a pierwszy to first_element_id
.
$("#last_element_id").on("keydown", function(e) {
if ((e.keyCode || e.which) == 9) {
$("#first_element_id").focus();
e.preventDefault();
}
});
0 dla odpowiedzi nr 2
Wyłącz tabulacje na elementach, które chcesz pominąć w ten sposób:
$("#element").attr("tabIndex", -1);
0 dla odpowiedzi № 3
Wszelkie ujemne indeksy tabulatorów powinny powstrzymywać koncentrację elementu, więc po prostu zaneguj istniejącą wartość, a następnie usuń minus przy ponownym umieszczaniu elementu w kolejności tabulatorów.
na przykład zmień indeks tabulatorów z 10 na -10, a następnie z powrotem na 10