2012-03-11 33 views
7

में परिवर्तन ईवेंट के कारण मैं onchange ईवेंट हैंडलर के भीतर जानना चाहता हूं, जिस पर नियंत्रण परिवर्तन (या धुंधला) घटना का कारण बनता है। मैं कि उद्देश्य के लिए jQuery $(":focus") उपयोग करने के लिए कोशिश की, लेकिनतत्व प्राप्त करें, जावास्क्रिप्ट

$('.some_class').change(function (e) { 
    console.log(e.target); 
    console.log($(':focus').get(0)); // always `undefined`. 
    /* ......... other code......... */ 
}); 
+1

पूरे ईवेंट हैंडलर ... – xandercoded

+0

$ प्रदान प्राप्त कर सकते हैं ('। Some_class')। परिवर्तन (समारोह (ई) { \t \t \t सांत्वना लॉग (e.target); \t \t \t console.log ($ (': फोकस'।) (0) मिलता है); \t \t \t ......... अन्य कोड ..... .... \t \t}); – DotNetter

+0

@DotNetter कृपया अपने उत्तर में कोड डालें – Andre

उत्तर

4

jQuery में, this, ईवेंट हैंडलर और event.target साथ तत्व को संदर्भित करता है, तो event अपने ईवेंट हैंडलर कॉलबैक करने के लिए पैरामीटर का स्रोत हो जाएगा घटना, अगर, उदाहरण के लिए, आपने एक बच्चे तत्व पर क्लिक किया और क्लिक बुलबुला हुआ।

ब्लर इवेंट के बाद फोकस ईवेंट निकाल दिया जाता है, इसलिए समय की एक छोटी अवधि होगी जिसके दौरान कोई तत्व फोकस नहीं करेगा। यदि आपको वास्तव में इसकी आवश्यकता है, तो आप यह देखने के लिए एक छोटा समय निर्धारित कर सकते हैं कि कोई अन्य input मूल धुंधला होने के बाद कुछ मिलीसेकंड पर ध्यान केंद्रित कर रहा है या नहीं।

+0

हां, ऐसा है। लेकिन समस्या यह है कि 'यह' शब्द मेरे टेक्स्टबॉक्स को इंगित करता है लेकिन केंद्रित तत्व पर नहीं। 'घटना' मैं कुछ मामलों में इसे रोकने के लिए उपयोग करता हूं। – DotNetter

6
$('.some_class').change(function (e) { 
console.log(e.target); 
console.log($(':focus').); // just remove the .get(0) 

}); .Get हटाने (0), आप तत्व है जो ध्यान केंद्रित करने पर है

+0

और मुझे क्या मिलता है? ऑब्जेक्ट jQuery खाली है – DotNetter

+0

यदि तत्व onblur है, तो आप तत्व ऑनफोकस – Madao

+0

प्राप्त कर सकते हैं मैं समझ नहीं पा रहा हूं। फंक्शन 'get' सिर्फ jQuery संग्रह के भीतर ऑब्जेक्ट देता है। इसलिए, यदि संग्रह खाली नहीं है, तो 'get (0)' को कॉल करने से मुझे केंद्रित तत्व प्राप्त करने की अनुमति मिलती है। तो आप इसे हटाने का सुझाव क्यों देते हैं? या शायद मैं कहीं गलत हो गया हूँ? – DotNetter

संबंधित मुद्दे

 संबंधित मुद्दे