jquery

2009-06-11 6 views
6

में वैकल्पिक पंक्ति रंग मेरे पास कॉलम क्रमबद्ध के साथ पंक्तियों के विस्तार और पतन के साथ एक सारणी है। नीचे मेरा कोड है, क्या इसके प्रदर्शन में सुधार करने के कोई तरीके हैं। और डोम में पंक्तियों के पूर्ण समूह को जोड़ने में पढ़ने में सुधार होता है, लेकिन अगर मैं $ .each() लूप से बाहर करता हूं तो यह त्रुटि फेंकता है। teble demojquery

var alt = true; 
var altSub = true; 

$.each(myData, function(index, row) { 

    var noRow = $(row).length; 
    var firstRow = $(row[0]); 

    for (var i=0; i < noRow; i++) { 
     if(firstRow.attr('id') == $(row[i]).attr('id')) { 
      if(alt == true) { 
       firstRow.removeClass("odd").addClass("even"); 
       alt = !alt; 
       altSub = true; 
      } else if(alt == false) { 
       firstRow.removeClass("even").addClass("odd"); 
       alt = !alt; 
       altSub = true; 
      } 
     } else { 
      if(altSub == true) { 
       $(row[i]).removeClass("alt_row_sub").addClass("alt_row_sub2"); 
       altSub = !altSub; 
      } else if(altSub == false) { 
       $(row[i]).removeClass("alt_row_sub2").addClass("alt_row_sub"); 
       altSub = !altSub; 
      } 
     } 
    } 
    $table.children('tbody').append(row); 
}); 

link text

+0

कृपया, अपनी मेज – Natrium

+1

का एक बड़ा प्रदर्शन प्रदान करते हैं और यही कारण है कि यह एक समुदाय विकी है? यह एक अच्छा अच्छा सवाल है। – Natrium

+0

@Natrium - मैंने छवि अपडेट की है। – vinay

उत्तर

2

Tutorials:Zebra Striping Made Easy jQuery से कैसे ज़ेबरा स्ट्रिपिंग करने के लिए पर एक बड़ा ट्यूटोरियल है।

+0

यह ज़ेबरा स्ट्रिपिंग मेरे मामले में लागू होगी। यदि आप मेरी डेमो छवि देखते हैं, तो यह एक विचार देता है। मेरी तालिका गिर गई है और विस्तार हुआ है, क्योंकि इसमें समूह में रंग है। – vinay

+0

मैंने एक बार इसे "पजामा स्ट्रिपिंग" कहने वाले किसी को सुना :-) – Natrium

+0

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

15

आपको :even और :odd चयनकर्ता उपयोगी मिल सकते हैं।

फिर आप उन्हें इस तरह इस्तेमाल कर सकते हैं:

$('.stripyTable tr:even').addClass('even'); 
$('.stripyTable tr:odd').addClass('odd'); 
$('.stripyTable .submenu tr:even').addClass('alt_row_sub'); 
$('.stripyTable .submenu tr:odd').addClass('alt_row_sub2'); 

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

.odd { background-color: blue; } 
.even { background-color: white; } 
.sub .odd { background-color: green; } 
.sub .even { background-color: yellow; } 
+0

आपके उत्तर के लिए धन्यवाद, लेकिन यह ठीक से काम नहीं कर रहा है। ऐसा लगता है कि यह http://www.freeimagehosting.net/uploads/da55af5e55.gif – vinay

+1

मुझे लगता है कि आपके पास कुछ छिपी हुई पंक्तियां हैं जो स्ट्रिपिंग को गलत लग रही हैं। लेकिन आपके स्रोत को देखे बिना यह देखना मुश्किल है कि इसका क्या कारण है। जब आप स्ट्रिपिंग लागू कर रहे हों तो दृश्य चयनकर्ता का उपयोग कर मदद कर सकते हैं। – thatismatt

+1

यहां कुछ कोड है जो मेरे बिंदु को स्पष्ट रूप से चित्रित करेगा: http://jsbin.com/iwuqe – thatismatt

0

आप प्रत्येक लूप के अंदर हैं, ऐसा करते हैं:

$.each(myData, function(index, row) { 

     if(index % 2 == 0) 
     { 
      row.addClass("AltRow"); 
     } 
)};