2010-06-07 13 views
9

मैं कैसे ट्रिगर कर सकता हूं: जावास्क्रिप्ट (jQuery) के माध्यम से गैर-एंकर तत्वों के लिए सक्रिय स्थिति?ट्रिगरिंग सीएसएस: गैर-एंकर तत्वों के लिए सक्रिय चयनकर्ता


के संदर्भ में Section 5.11.3 of the W3C CSS2 specification की समीक्षा करते हुए: छद्म चयनकर्ता मंडराना एक की सक्रियता को ट्रिगर के बारे में देखने के लिए, मैं जिसके बाद मुझे विश्वास है कि यह संभव हो जाना चाहिए नेतृत्व में आए:

": सक्रिय छद्म-वर्ग लागू होता है जबकि उपयोगकर्ता द्वारा एक तत्व सक्रिय किया जा रहा है। उदाहरण के लिए, उपयोगकर्ता माउस बटन दबाए जाने के दौरान और इसे रिलीज़ करता है। "

"सीएसएस यह निर्धारित नहीं करता है कि उपरोक्त राज्यों में कौन से तत्व हो सकते हैं, या राज्य कैसे दर्ज किए जाते हैं और बाएं हैं। स्क्रिप्टिंग बदल सकती है कि क्या तत्व उपयोगकर्ता घटनाओं पर प्रतिक्रिया करते हैं या नहीं, और विभिन्न उपकरणों और UAs में पॉइंटिंग के विभिन्न तरीके हो सकते हैं तत्वों को सक्रिय करने या सक्रिय करने के लिए। "

सहायता के लिए धन्यवाद!

उत्तर

2

आप जावास्क्रिप्ट के साथ :active जैसे सीएसएस छद्म चयनकर्ता को ट्रिगर नहीं कर सकते हैं। कोई फ़ंक्शन/हैंडलर नहीं है जिसे निष्पादित किया जा सकता है, इसलिए यदि आप trigger पर किसी तत्व पर css :active छद्म चयनकर्ता सेट (उदाहरण के लिए लाल रंग को पृष्ठभूमि रंग सेट करना), तो कुछ भी नहीं होने वाला है।

+0

कि निराशाजनक है अगर सच में। मुझे पता है कि मुझे ऐसा करने का कोई रास्ता नहीं मिला है, लेकिन मुझे नहीं पता कि ऐसा क्यों नहीं होना चाहिए। = ( –

2

मैं एक ही चीज़ की खोज करते समय इस प्रश्न में आया था।

मूल रूप से मेरे पास एक टेक्स्ट क्षेत्र और एक बटन है। बटन दबाए जाने पर बटन.क्लिक ट्रिगर होता है। हालांकि: सीएसएस में सक्रिय चयनकर्ता ट्रिगर नहीं किया गया है, इसलिए यह वही प्रभाव नहीं देता है।

तो मैंने यही किया। यह थोड़ा अनावश्यक लेकिन काम करता है।

सीएसएस

/*this is for actual clicks on the button */ 
.Button:active { 
position:relative; 
top:5px; 
} 

/* this is for pressing enter instead of clicking the button */ 
.Button.activate{ 
position:relative; 
top:5px; 
} 

में

तो jQuery

//if enter is pressed, trigger button click 
$("#textArea").keydown(function(event){ 
if(event.keyCode == 13){ 
    $("#button").click(); 
    $("#button").addClass('activate'); 
} 
}); 

//if enter is released, remove class 
$("#textArea").keyup(function(event){ 
if(event.keyCode == 13){ 
    $("#button").removeClass('activate'); 
} 
}); 
+0

सीएसएस नियम में 'हैप्टन: सक्रिय, बटनटन। सक्रिय करें {...}' का उपयोग करने से आप केवल एक बार स्टाइल को परिभाषित कर सकते हैं और अनावश्यक समस्या को हटा सकते हैं। – dim

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