/ / Utrzymywanie fokusu w oknie dialogowym jQuery - javascript, jquery, jquery-ui

Utrzymywanie ostrości karty w oknie dialogowym jQuery - javascript, jquery, jquery-ui

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 № 1

Dodaj 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