Tôi đang cố gắng xác định quy trình làm việc để tinh chỉnh ứng dụng web nhập dữ liệu. Hình ảnh một số biểu mẫu địa chỉ trên một trang web duy nhất:jQuery giao cả hai tiêu điểm và nhấp vào một phần tử
1. Name___________
Street_________
Phone__________
2. Name___________
Street_________
Phone__________
[...many more...]
Bây giờ tôi muốn biết liệu người dùng có sử dụng phím tab để đến trường "Tên" thứ hai (hoặc bất kỳ nơi nào trong hồ sơ đó) hay không nếu họ đang sử dụng chuột để click vào nó. (Hoặc Shift-Tab để di chuyển theo hướng ngược lại.)
tôi đã thiết lập một handler trên cả hai lấy nét và bấm cho các lĩnh vực đầu vào:
$('input').click(function() { TabulateClick(this) });
$('input').focus(function() { TabulateFocus(this) });
Và trong xử lý, tôi xác định giải quyết cho người sử dụng là làm việc và liệu chúng tôi đã "chuyển đổi" các bản ghi Địa chỉ. (Nếu trọng tâm là trong "Điện thoại" cho địa chỉ đầu tiên, và bạn click vào trường "Tên" trong cùng địa chỉ, đó là không thực sự chuyển đổi hồ sơ, vì vậy tôi không chia loại đó.)
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;
}
Vấn đề của tôi là khi tôi bấm chuột vào trường focus
sự kiện cháy đầu tiên lập bảng giả switchedAddressesWithTab
và thay đổi hiện tạiĐịa chỉ (đó là xấu). Khi trình xử lý click
chạy, lastAddressRecord
bị hỏng.
Có cách nào bên trong trình xử lý focus
để biết rằng có sự kiện click
đang chờ xử lý trên cùng một đối tượng không? Hoặc trong trình xử lý click
để biết rằng nó đã được xử lý trước đây bởi focus
?
@Juan - kể từ khi chúng tôi tham gia QA ngay hôm nay, khi bạn duyệt qua tất cả các trường đến cơ thể, sau đó nhấp vào một bảng điều khiển, nhấp vào tab –
@Josiah: Tốt, tôi không hiểu tại sao nó xảy ra mặc dù .. Tôi đoán chúng tôi đã cung cấp OP với hai cách làm việc hầu hết thời gian, vẫn còn đầu tư thêm 2 phút cho điều này mặc dù –
@Juan - yah cảm ơn vì đã nói với tôi về chi tiêu hoàn toàn nhiều thời gian hơn tôi dự đoán về câu hỏi này;) làm, dang phát triển. –