ऐसा प्रतीत होता है कि ब्लर इवेंट क्लिक ईवेंट हैंडलर को काम करने से रोकता है? मेरे पास एक कॉम्बो बॉक्स है जहां विकल्प केवल तभी दिखाई देते हैं जब टेक्स्ट फ़ील्ड फोकस हो। एक विकल्प लिंक चुनना एक घटना होने का कारण बनना चाहिए। http://jsfiddle.net/uXq5p/6/ब्लर इवेंट काम से काम पर क्लिक बंद कर देता है?
पुन: पेश करने के लिए::
- पाठ बॉक्स
- लिंक
- दिखाई दें एक लिंक
- कलंक भी होता है और लिंक पर क्लिक करें
मैं यहाँ एक उदाहरण है बेला गायब हो
- और कुछ नहीं होता है।
अपेक्षित व्यवहार:
चरण 5 पर, कलंक होने के बाद, क्लिक करें यहां तक कि यह भी चाहिए तो आग। मैं ऐसा कैसे करूं?
अद्यतन:
थोड़ी देर के लिए इस के साथ खेलने के बाद, ऐसा लगता है कि किसी को एक संभाला जा रहा से घटना क्लिक पहले से ही हुआ है, तो एक कलंक घटना क्लिक किया तत्व संयुक्त राष्ट्र बनाता है को रोकने के लिए हद तक चला गया है क्लिक करने योग्य।
उदाहरण के लिए:
$('#ShippingGroupListWrapper').css('left','-20px');
बस ठीक काम करता है, लेकिन
$('#ShippingGroupListWrapper').css('left','-2000px');
क्लिक करें घटना से बचाता है।
यह एक तत्व अन-क्लिक करने योग्य भविष्य क्लिक से बचने चाहिए बनाने के बाद से, फ़ायरफ़ॉक्स में एक बग प्रतीत होता है, लेकिन नहीं जो कि पहले से ही हुआ है जब यह क्लिक किया जा सकता है रद्द कर दें।
अन्य चीजें हैं जो प्रसंस्करण से क्लिक करें घटना को रोकने:
$('#ShippingGroupListWrapper').css('z-index','-20');
$('#ShippingGroupListWrapper').css('display','none');
$('#ShippingGroupListWrapper').css('visibility','hidden');
$('#ShippingGroupListWrapper').css('opacity','.5');
मैं इस साइट समान समस्या हो रही है उस पर कुछ अन्य प्रश्न मिल गया है। ऐसा लगता है कि चार समाधान तैर रहे हैं:
देरी का उपयोग करें। यह बुरा है क्योंकि यह छिपाने और क्लिक इवेंट हैंडलर के बीच दौड़ की स्थिति बनाता है। यह भी मैला है।
mousedown
ईवेंट का उपयोग करें। लेकिन यहclick
एक लिंक के लिए सही घटना के बाद से यह एक अच्छा समाधान नहीं है।mousedown
का व्यवहार यूएक्स परिप्रेक्ष्य से प्रति-अंतर्ज्ञानी है, खासकर जब आप बटन को जारी करने से पहले माउस को तत्व से बाहर ले जाकर क्लिक को रद्द नहीं कर सकते हैं।
मैं कुछ और सोच सकता हूं।
mouseover
और mouseout
लिंक सक्षम करने के लिए पर 3.Use/क्षेत्र के लिए कलंक घटना को अक्षम करें। चूंकि माउस शामिल नहीं है, यह कुंजीपटल टैबिंग के साथ काम नहीं करता है।
4. सबसे अच्छा समाधान होगा कुछ की तरह:
$('#ShippingGroup').blur(function()
{
if($(document.activeElement) == $('.ShippingGroupLinkList'))
return; // The element that now has focus is a link, do nothing
$('#ShippingGroupListWrapper').css('display','none'); // hide it.
}
दुर्भाग्य से, $(document.activeElement)
हमेशा शरीर तत्व है, एक क्लिक किए गए वापस जाने के लिए लगता है। लेकिन हो सकता है कि अगर 1 या तो जानने का एक भरोसेमंद तरीका था। कौन सा तत्व अब फोकस या दो है, जो तत्व धुंध हैंडलर के भीतर धुंध (कौन सा तत्व अस्पष्ट नहीं है) का कारण बनता है। इसके अलावा, क्या कोई अन्य घटना है (mousedown
के अलावा) जो धुंध से पहले आग लगती है?
समस्या कलंक घटना क्लिक से पहले फायरिंग कर रहा है। चूंकि धुंध उन तत्वों को छुपाता है, इसलिए आप कुछ भी क्लिक नहीं करते हैं। – vcsjones
मुझे यकीन नहीं है कि छुपा समस्या है। मैंने उन्हें छिपाने के बजाय अस्पष्टता को 50% सेट करने का प्रयास किया और क्लिक ईवेंट अभी भी नहीं हुआ है। कृपया jsfiddle.net/75sgt/1 – Nick
आगे प्रयोग के बाद, यह नई गैर-चिपचिपापन है जो पहले से क्लिक किए गए तत्व को "अन-क्लिक" कर रही है। ऊपर मेरा अपडेट देखें। – Nick