2010-05-31 7 views
13

उपयोगकर्ता तालिका तालिका पर क्लिक करने के बाद, मैं यह जांचना चाहता हूं कि तालिका पंक्ति का पृष्ठभूमि-रंग सफेद है या नहीं, और यदि ऐसा है, तो यह रंग हल्के नीले रंग में बदल जाएगा।मैं jQuery का उपयोग कर एक सीएसएस मूल्य की जांच कैसे करूं?

मैं जिस कोड का उपयोग कर रहा हूं वह काम नहीं कर रहा है। संदेश यह है:

$("#tracker_table tr#master").click(function(){ 
    if($(this).css("background-color") == "#FFFFFF") { 
    $(this).css("background-color", "#C2DAEF"); 
    } 
}); 

मुझे लगता है कि वहाँ कुछ मेरी अगर बयान के साथ गलत है। मैं jQuery का उपयोग कर एक सीएसएस मूल्य की जांच कैसे करूं?

+1

आप इस ब्लॉग पर एक नज़र लेने के लिए चाहते हो सकता है [जावास्क्रिप्ट के साथ तुलना रंग] (http://radio.javaranch.com/pascarello/2005/05: यह कुछ इस तरह है करने के लिए बहुत मित्रवत और कम भंगुर है /19/1116513366466.html)। जाहिर है कि विभिन्न ब्राउज़र अलग-अलग रंगों का प्रतिनिधित्व करते हैं, या 2005 में किए गए थे। – R0MANARMY

उत्तर

20

ऐसा लगता है कि प्रपत्र rgb(x, y, z) में लौट जाता है, तो अपने कोड होना चाहिए:

$("#tracker_table tr#master").click(function(){ 
    if($(this).css("background-color") == "rgb(255, 255, 255)") { 
    $(this).css("background-color", "#C2DAEF"); 
    } 
}); 

संपादित: कहा जा रहा है, मैं तुम्हें/बजाय कक्षाओं का उपयोग निरीक्षण के सीएसएस गुण सीधे स्थापित करने सुझाव देंगे । कुछ इस तरह:

$("#tracker_table tr#master").click(function(){ 
    if(!$(this).hasClass("selected")) { 
    $(this).addClass("selected"); 
    } 
}); 

Css:

tr { background-color: #FFFFFF; } 
tr.selected { background-color: #C2DAEF; } 
+0

यह अभी भी काम नहीं करता है। मेरे अगर कथन के साथ कुछ गड़बड़ है, क्योंकि मैंने if स्टेटमेंट में अलर्ट जोड़ने का प्रयास किया है और इसे कभी भी सतर्क नहीं किया है, तो मुझे पता है कि अगर कथन सही तरीके से काम नहीं कर रहा है। – zeckdude

+0

@zeckdude: आप किस ब्राउज़र में परीक्षण कर रहे हैं? मुझे आपके कथन के साथ कोई समस्या नहीं दिखाई दे रही है और 'आरजीबी (...)' प्रारूप निश्चित रूप से फ़ायरफ़ॉक्स और वेबकिट में कम से कम वापस आ गया है, लेकिन शायद यह ब्राउज़र पर निर्भर है क्योंकि @ R0MANARMY आपके टिप्पणी पर सुझाव देता है प्रश्न (आमतौर पर jQuery इन क्रॉस ब्राउज़र विषमताओं को छिपाने की कोशिश करता है) ... आप उपरोक्त संपादन में अपना दूसरा सुझाव आजमा सकते हैं। – Alconja

3

यह काम कर सकते हैं, प्रभाव में आप रंग के रूप में जानकारी भंडारण कर रहे हैं, और फिर पुन: प्राप्त करने और बाद में यह जानकारी की तुलना। अल्कोन्जा एक दृष्टिकोण सुझाता है जो काम करेगा, लेकिन आखिरकार आप कक्षाओं के साथ काम करने से बेहतर हो सकते हैं, जिनके नाम उचित अर्थ रखने के लिए आपके द्वारा परिभाषित किए जा सकते हैं।

$('#tracker_table tr#master').click(function(){ 
    if ($(this).hasClass('something')) { 
     $(this).removeClass('something').addClass('something_else'); 
    } 
}) 
+0

शायद यह जाने का तरीका है, मुझे लगता है कि रंगों में कुछ प्रकार का अर्थ है जैसे "चयनित पंक्ति" या क्या नहीं। – R0MANARMY

+2

क्या होगा यदि आपकी परियोजना के हितधारकों का फैसला है कि अब जो भी सफेद मतलब है, वे इसे हल्के भूरे रंग के पसंद करेंगे? नहीं, वह ग्रे नहीं, एक और ग्रे। और उस नीले को थोड़ा सा हिरण भी बनाओ। अर्थपूर्ण वर्गनामों का उपयोग करना आपकी स्टाइल शीट में एक आसान परिवर्तन है, और आपका कोड यह कहता है कि यह क्या कहता है। अगर यह सिर्फ 'चयनित' है, तो हाँ, यह बहुत आसान है। tr class = "चयनित", बनाम कोई वर्ग नहीं। –

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