2011-08-07 13 views
6

मैं सभी .note तत्वों को एक विशिष्ट टूलटिप बनाना चाहता हूं।कक्षा नाम से शीर्षक विशेषता को परिभाषित करना संभव है?

क्या यह स्वचालित रूप से ऐसा करना संभव है, उदा। सीएसएस में? note वर्ग की तरह रंग और फ़ॉन्ट परिभाषित किया गया है, क्या उस वर्ग के साथ टूलटिप टेक्स्ट (title विशेषता) को बाध्य करना संभव है?

मैं कुछ फ़ंक्शन कर सकता हूं जो सभी .note तत्वों पर पुनरावृत्त करता है और title विशेषता को तब प्रस्तुत करता है यदि यह अभी तक मौजूद नहीं है। हालांकि, चूंकि मुझे सीएसएस शैलियों के लिए मैन्युअल रूप से पुन: सक्रिय करने की आवश्यकता नहीं है, इसलिए मैं सोच रहा था कि इस समस्या के लिए और अधिक सुरुचिपूर्ण समाधान भी है (उदाहरण के लिए सीएसएस में इसे परिभाषित करना संभव है?)।

+1

सीएसएस प्रस्तुति और शैली के साथ क्या करना है; शीर्षक विशेषता डेटा है, प्रेजेंटेशन नहीं। – cdhowie

+0

@cdhowie: वास्तव में शीर्षक वास्तव में एक प्रस्तुति सामान है, डेटा नहीं। –

उत्तर

9

ऐसा कुछ नहीं है जो सीएसएस के दायरे में है। आपकी सबसे अच्छी शर्त कुछ जावास्क्रिप्ट या JQuery का उपयोग करना है।

11

आप सीएसएस का उपयोग कर किसी तत्व के गुणों को नहीं बदल सकते हैं; आप, शायद,, title कार्यक्षमता का अनुकरण कर सकता है, हालांकि (यद्यपि केवल अनाड़ीपन से):

.note { 
    position: relative; 
} 

.note:after { 
    content: "The alternate 'pseudo-title' text for the .note elements."; 
    position: absolute; 
    left: 50%; 
    background-color: #000; 
    color: #fff; 
    } 

JS Fiddle demo

हालांकि इसका उपयोग करने से अब भी मूल title दिखाने की अनुमति मिल जाएगी, इसलिए मैं जावास्क्रिप्ट (या सर्वर साइड भाषा में) के साथ उस विशेषता को हटाने का सुझाव दूंगा।

संभव जावास्क्रिप्ट खिताब हटाने विधि:

var notes = document.getElementsByClassName('note'); 
var notesNum = notes.length; 

for (i=0; i<notesNum; i++){ 
    notes[i].removeAttribute('title'); 
} 

JS Fiddle demo (combining the two approaches)


संपादित, ओ पी के रूप में, टिप्पणियाँ (नीचे) मौजूदा रूप और रंग बदलें, वर्ग-नाम के साथ सभी तत्वों के लिए एक नया शीर्षक बताए करने के लिए JavaScript विकल्प जोड़ने के लिए नहीं चाहता है से note की:

var notes = document.getElementsByClassName('note'); 
var notesNum = notes.length; 
var newTextForNotesClass = "This is the new title text for the notes-class-name group."; 

for (i=0; i<notesNum; i++){ 
    notes[i].title = newTextForNotesClass; 
} 

JS Fiddle demo

+0

मुझे खेद है कि मैं नियमित टूलटिप पसंद करता हूं। मैं बल्कि देखो और महसूस नहीं बदलूँगा। – pimvdb

+0

इसके लिए क्षमा मांगने की कोई आवश्यकता नहीं है!:) कृपया नवीनतम संपादन देखें, जो एक जावास्क्रिप्ट समाधान दिखाता है (आपकी) आवश्यकताओं को पूरा करना चाहिए। :) –

+2

यह स्वीकार्य उत्तर होना चाहिए। –

2

सीएसएस कार्रवाई करने के लिए स्टाइल के लिए है; आपको उस तरह की चीज़ के लिए जावास्क्रिप्ट की आवश्यकता होगी। आप उन सरणी गुणों को सेट करके लूप के लिए एक सरणी प्राप्त करने के लिए document.getElementsByClassName का उपयोग कर सकते हैं।

+0

द्वारा नीचे चेकआउट उत्तर वास्तव में मैं वर्तमान में ऐसा कर रहा हूं, मैं बस सोच रहा था कि टूलटिप टेक्स्ट को परिभाषित करना संभव है या नहीं फ़ॉन्ट/रंग/आदि के समान ही। मैं बस इस तरह से जारी रखूंगा। – pimvdb

4

जैसा कि आपने 'उदा। सीएसएस ', मुझे लगता है कि आप एक शीर्षक निर्दिष्ट करने के लिए कक्षा का उपयोग करने के तरीके के बारे में एक जवाब चाहते हैं। अन्य उत्तरों की तरह, jQuery या जावास्क्रिप्ट आपकी सबसे अच्छी शर्त है।

jQuery के साथ

, आप कर सकते हैं:

tooltip = "Tooltip Text"; 
$('.note').attr('title', tooltip); 

यहाँ एक उदाहरण के साथ एक बेला है: http://jsfiddle.net/RdNvy/

+0

jQuery के साथ उत्कृष्ट जवाब। मैं यह देखने के लिए अपने जेएसफिड को सरल बनाना चाहता था कि जरूरी हड्डी क्या है। और परिणाम भयानक है, भले ही एचटीएमएल टैग में कोई शीर्षक = "" न हो, फिर भी jquery इसे ठीक से संभालता है। http://jsfiddle.net/RdNvy/42/ धन्यवाद! – Mohsin

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