थोड़ा सा सामान्य समाधान:
मान लीजिए कि मैं पंक्तियों वाली तालिकाओं कि जब मैं उन पर माउस सूचक डाल पर प्रकाश डाला जाएगा बनाने के लिए एक आसान तरीका है करने के लिए चाहते हैं। आदर्श दुनिया में यह सिर्फ एक सरल सीएसएस नियम के साथ, बहुत आसान होगा:
tr:hover { background: red; }
दुर्भाग्य से, IE के पुराने संस्करणों का समर्थन नहीं करते: ए के अलावा अन्य तत्वों पर मंडराना चयनकर्ता तो हम जावास्क्रिप्ट का उपयोग करने के लिए है।
उस स्थिति में, मैं तालिका तालिका को चिह्नित करने के लिए "हाइलाइट करने योग्य" तालिका तालिका को परिभाषित करता हूं जिसमें होवर योग्य पंक्तियां होनी चाहिए। मैं तालिका पंक्ति पर वर्ग "हाइलाइट" जोड़कर और हटाकर पृष्ठभूमि स्विचिंग कर दूंगा।
सीएसएस
table.highlightable tr.highlight { background: red; }
जावास्क्रिप्ट (प्रोटोटाइप का उपयोग कर)
// when document loads
document.observe('dom:loaded', function() {
// find all rows in highlightable table
$$('table.highlightable tr').each(function(row) {
// add/remove class "highlight" when mouse enters/leaves
row.observe('mouseover', function(evt) { evt.element().addClassName('highlight') });
row.observe('mouseout', function(evt) { evt.element().removeClassName('highlight') });
});
})
एचटीएमएल
तुम सब अब क्या करना है किसी भी जोड़ने के लिए वर्ग "highlightable" है टेबल जो आप चाहते हैं:
<table class="highlightable">
...
</table>
बहुत अच्छा। मुझे नहीं पता था कि आप $$ ('# mytable tr') जैसी चीजें कर सकते हैं। इससे मेरा जीवन बहुत आसान हो जाता है। –
@Swilliams कोड मेरे उदाहरण से अच्छा है, लेकिन मुझे लगता है कि आपको जेएस में स्पष्ट रूप से सेटिंग सेट करने के बजाय addClassName() का उपयोग करना चाहिए। – pix0r
@ मार्क बीक, ऐसे $ एफ और $ ए जैसे सहायक लोगों का एक गुच्छा है। उपयोगिता पृष्ठ देखें: http://www.prototypejs.org/api/utility और संख्यात्मक वस्तुएं बहुत शक्तिशाली हैं: http://www.prototypejs.org/api/enumerable – swilliams