मैं डेटा एंट्री वेब एप्लिकेशन को ठीक-ठीक करने के लिए वर्कफ़्लो निर्धारित करने का प्रयास कर रहा हूं। एक वेब पृष्ठ पर कई रूपों पते चित्र:jQuery दोनों फोकस को संभालने और एक तत्व पर क्लिक करें
1. Name___________
Street_________
Phone__________
2. Name___________
Street_________
Phone__________
[...many more...]
अब मुझे पता करने के लिए उपयोगकर्ता दूसरा "नाम" फ़ील्ड को पाने के लिए टैब कुंजी का उपयोग कर रहा है, तो चाहते हैं (या कि रिकॉर्ड के भीतर कहीं भी), या अगर वे माउस पर क्लिक करने के लिए इसका उपयोग कर रहे हैं। (या Shift-Tab रिवर्स में स्थानांतरित करने के लिए।)
मैं दोनों ध्यान केंद्रित करने पर कोई हैंडलर निर्धारित किया है और क्लिक इनपुट फ़ील्ड के लिए:
$('input').click(function() { TabulateClick(this) });
$('input').focus(function() { TabulateFocus(this) });
और हैंडलर में, मैं जो संबोधित उपयोगकर्ता के निर्धारित काम कर रहे हैं और क्या हमने पता रिकॉर्ड "स्विच" किया है। (यदि फोकस पहले पते के लिए "फ़ोन" में था, और आप एक ही पते में "नाम" फ़ील्ड पर क्लिक करें, जो वास्तव में रिकॉर्ड को स्विच नहीं है, तो मुझे लगता है कि सारणीबद्ध नहीं है।)
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;
}
मेरे समस्या यह है कि जब मैं मैदान में माउस क्लिक करें focus
घटना आग पहले एक झूठी switchedAddressesWithTab
सारणी और currentAddress बदल रहा है (कि बुरा है)। जब click
हैंडलर चलता है, तो lastAddressRecord
खराब हो जाता है।
क्या focus
हैंडलर के अंदर कोई तरीका है यह जानने के लिए कि एक ही ऑब्जेक्ट पर लंबित click
ईवेंट है? या click
हैंडलर में यह जानने के लिए कि यह पहले focus
द्वारा संभाला गया था?
@ जुआन - चूंकि हम आज क्यूए में हैं, जब आप शरीर के सभी क्षेत्रों के माध्यम से टैब पर क्लिक करते हैं, तो एक कंसोल लॉग पर क्लिक करें, टैब –
@ जोशिया: अच्छा पकड़, मुझे समझ में नहीं आता कि यह क्यों हो रहा है .. मुझे लगता है कि हमने ओपी को दो तरीकों से प्रदान किया है जो अधिकतर समय काम करते हैं, फिर भी –
@ जुआन - याह मुझे पूरी तरह से अधिक समय बिताने में बात करने के लिए धन्यवाद, फिर मैंने कभी इस सवाल पर अनुमान लगाया;) हम क्या कर सकते हैं करो, डांग डेवलपर्स। –