मेरे पास मेरी वेबसाइट पर उपयोगिता चिंता है। मेरे पास टैब का एक सेट है, प्रत्येक में एक फॉर्म है। जब आप टैब लिंक पर क्लिक करते हैं, तो यह टैब सामग्री निकाय में पहले टेक्स्टबॉक्स पर ध्यान देता है। माउस उन्मुख लोग इस "फीचर" से प्यार करते हैं। समस्या तब होती है जब कीबोर्ड-ओरिएंटेड उपयोगकर्ता टैब के माध्यम से जाने के लिए अपने कीबोर्ड पर टैब कुंजी का उपयोग करते हैं। वे उस टैब पर एंटर दबाते हैं, जिसे वे देखना चाहते हैं, क्लिक ईवेंट आग लगती है और टैब दिखाई देता है, लेकिन टेक्स्टबॉक्स पर फोकस दिया जाता है, जिससे उनके टैब ऑर्डर को पूरी तरह समायोजित किया जाता है। तो जब वे फिर से टैब दबाते हैं, तो वे स्क्रीन पर अगले टैब पर जाना चाहते हैं, लेकिन चूंकि फोकस को फॉर्म के अंदर ले जाया गया था, इसलिए वे कीबोर्ड का उपयोग करके आसानी से अगले टैब तक नहीं पहुंच सकते हैं।jQuery क्लिक इवेंट - कैसे बताना है कि माउस क्लिक किया गया था या कुंजी दर्ज की गई थी?
तो, क्लिक ईवेंट के अंदर मुझे यह निर्धारित करने की आवश्यकता है कि क्या उन्होंने वास्तव में माउस बटन पर क्लिक किया है या नहीं। क्या यह संभव है? मेरा पहला प्रयास था यह:
$("#tabs li a").click(function(e) {
var tab = $(this.href);
if(e.keyCode != 13)
$("input:first", tab).focus();
});
लेकिन keyCode
हमेशा 0. which
संपत्ति भी है हमेशा 0. कृपया मदद है!
आप संभवतः टेक्स्टबॉक्स पर एक .focus() हैंडलर डालकर थोड़ा सा तर्क डालकर इसके आसपास हैक कर सकते हैं। – krasnerocalypse
@ krasnericalypse एर, वास्तव में नहीं। एक बार टेक्स्टबॉक्स/ड्रॉपडाउन पर फोकस दिया जाता है, यह ठीक होने में बहुत देर हो चुकी है। –
हाहा। यह कठिन है। – krasnerocalypse