2010-12-20 7 views
5

मैं इस तरह एक मेज है। अब मैं इस तरह इन पंक्तियों को चालू करना चाहते हैं:jQuery.toggle() कई <TR> तत्वों पर बेहद धीमी गति से

$("#toggle_a").click(function(){ 
     $("tr.a").toggle(); 
    }); 
    $("#toggle_b").click(function(){ 
     $("tr.b").toggle(); 
    }); 

लेकिन यह वास्तव में बेहद धीमी गति से और समय ब्राउज़र कार्य बंद करना चाहता है के सबसे।

क्या किसी को यह विचार है कि इस चीज़ को तेज़ी से और उपयोग करने योग्य कैसे बनाया जाए?

उत्तर

3

लगता है क्योंकि jQuery वर्ग के नाम से खोज तत्व ..

नोट: वर्ग चयनकर्ता jQuery में धीमी चयनकर्ताओं के बीच में है; आईई में यह पूरे डोम के माध्यम से loops। जब भी संभव हो, से बचें।

यह भी जांच this लेख

+0

यह वास्तव में मुद्दा नहीं है, यह तालिका का reflow है :) –

+0

हाँ मुझे पता है, लेकिन कक्षाओं के बजाय कई पंक्तियों को कैसे कॉल करें? – adnek

+0

आप प्रत्येक कथन का उपयोग कर सकते हैं, और एक बार document.ready पर क्लिक करें। लेकिन कुछ विलुप्त लोग टेबल को प्रतिस्थापित करने का सुझाव देते हैं। –

1

यदि आप तालिका डेटा प्रदर्शित नहीं कर रहे तालिकाओं का उपयोग न करें।

जब आपके पास बहुत बड़ी टेबल हैं (प्रतिपादन तालिकाओं में जटिलता के कारण) कुख्यात रूप से धीमे होते हैं। और इस तरह के परिवर्तन के साथ बहुत सारे रिफ्लो हो रहे होंगे।

+0

असल में मैं वास्तविक टैब्यूलर डेटा का उपयोग कर रहा हूं, इसलिए कोई कामकाज नहीं है – adnek

+1

@adenk - छोटी टेबल पर विचार करें। 800 पंक्तियां उपयोगकर्ता के अनुकूल नहीं हैं, शायद एक और गतिशील दृष्टिकोण मदद करेगा। एक समय में 40 पंक्तियां दिखा रहा है, पेजिंग जोड़ें, शायद तालिका को पॉप्युलेट करने के लिए AJAX का उपयोग करें। – Oded

0

तालिका संरचना का उपयोग करने के बजाय, LI टैग का उपयोग करें। यह एचटीएमएल रेंडर प्रक्रिया तेज हो जाएगा।

<UL style="padding: 0; list-style-type: none;"> 
    <LI class="a">1</LI> 
    <LI class="b">2</LI> 
    <LI>3</LI> 
    <LI>4</LI> 
</UL> 

अब आप इस पर चयनकर्ता लिख ​​सकते हैं। यह निश्चित रूप से एक सुधार

3

मैं एक ऐसी ही समस्या थी लेकिन कुछ पंक्तियों से, के बारे में 200

मैं .hide() और .show() और अब इस लगभग तात्कालिक उपयोग किया जाएगा।

+0

यह समाधान पूरी तरह से काम करता है, और मुझे टेबल लेआउट से दूर होने से बचने की अनुमति देता है (यह टैब्यूलर डेटा है)। – Susan

+0

मेरे लिए भी बहुत अच्छा काम किया। मुझे लगता है कि टॉगल() अधिक सरल प्रसंस्करण का उपयोग करता है जो एक साधारण स्विच स्टेटमेंट है। –

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