Próbuję określić przepływ pracy, aby dostosować aplikację internetową do wprowadzania danych. Obraz kilka form adres na jednej stronie internetowej:jQuery przekazanie fokusa i kliknięcie elementu
1. Name___________
Street_________
Phone__________
2. Name___________
Street_________
Phone__________
[...many more...]
teraz chciałbym wiedzieć, czy użytkownik korzysta z klawisza TAB, aby przejść do drugiego pola „Nazwa” (lub gdziekolwiek w tej płyty), lub jeśli używają myszy do kliknięcia. (Lub Shift-Tab, aby poruszać się w odwrotnej kolejności).
mam ustawić obsługi zarówno ostrość i kliknij na polach wejściowych:
$('input').click(function() { TabulateClick(this) });
$('input').focus(function() { TabulateFocus(this) });
I w uchwycie, określić, które rozwiązanie jest użytkownik praca nad i czy "przełączyliśmy" rekordy adresów. (W przypadku skupiono się na „telefon” dla pierwszego adresu i kliknięciu w polu „Nazwa” w samym adresem, to nie faktycznie przełączania płyt, więc nie tabularyzować że.)
function TabulateClick(field)
{
var currentAddressRecord = FindAddress(field);
if (lastAddressRecord != currentAddressRecord)
switchedAddressesWithClick++;
lastAddressRecord = currentAddress;
}
function TabulateFocus(field)
{
var currentAddress = FindAddress(field);
if (lastAddressRecord != currentAddressRecord)
switchedAddressesWithTab++;
lastAddressRecord = currentAddress;
}
Mój problem polega na tym, że po kliknięciu myszą w polu zdarzenie focus
uruchamia się najpierw w tabulacji fałszywego switchedAddressesWithTab
i zmienia bieżący adres (to jest zły). Po uruchomieniu obsługi click
urządzenie lastAddressRecord
jest zepsute.
Czy istnieje sposób wewnątrz instrukcji obsługi focus
, aby wiedzieć, że istnieje oczekujące zdarzenie click
na tym samym obiekcie? Lub w obsłudze click
, aby wiedzieć, że wcześniej była ona obsługiwana tylko przez focus
?
@Juan - od kiedy jesteśmy dzisiaj w QA, kiedy przechodzisz przez wszystkie pola do ciała, kliknij w jedno kliknięcie logów konsoli, zakładka –
@Josiah: Dobry połów, nie rozumiem, dlaczego tak się dzieje .. Wydaje mi się, że dostarczyliśmy OP dwa sposoby, które działają przez większość czasu, wciąż inwestując kolejne 2 minuty w to, ale –
@Juan - yah dzięki za rozmowę z moim spędzeniem więcej czasu niż kiedykolwiek przewidziałem na to pytanie;) co możemy do zrobienia, dang developerzy. –