2011-11-07 12 views
6

मेरे पास कई सूचियां हैं जो क्रमबद्ध हैं और मैं प्रत्येक सूची में तत्व खींच सकता हूं।jQuery क्रमबद्ध चयनकर्ता ("आईडी" बनाम "कक्षा")?

सेटअप इस तरह दिखता है:

<ul id="sortable1" class="connectedSortable"> 
<li>Item 1</li> 
<li>Item 2</li> 
<li>Item 3</li> 
</ul> 

<ul id="sortable2" class="connectedSortable"> 
<li>Item 1</li> 
<li>Item 2</li> 
<li>Item 3</li> 
</ul> 

जावास्क्रिप्ट सरल है और इस

(jQuery साइट से निम्न उदाहरण)

<script> 
$(function() { 
    $("#sortable1, #sortable2").sortable({ 
     connectWith: ".connectedSortable" 
    }).disableSelection(); 
}); 
</script> 

अब तक तो की तरह दिखता है अच्छा ...

प्रश्न:

jQuery चयनकर्ता के लिए, क्या मैं दो सूची आईडी के बजाय उल क्लास का उपयोग कर सकता हूं ??

कुछ की तरह:

<script> 
$(function() { 
    $(".connectedSortable").sortable({ 
     connectWith: ".connectedSortable" 
    }).disableSelection(); 
}); 
</script> 

यह सही होगा?

मैं इस की कोशिश की है और यह काम करता ...

... लेकिन मुझे आश्चर्य है कि क्यों jQuery वेबसाइट चयनकर्ता के रूप में सूची आईडी और न सिर्फ वर्ग के नाम दोनों के साथ उदाहरण देता है ?? यदि मैं कक्षा का चयनकर्ता के रूप में उपयोग करता हूं तो क्या मैं संगतता मुद्दों में भाग सकता हूं?

चयनकर्ता के रूप में कक्षा का नाम उपयोग करने का लाभ यह होगा कि मुझे पहले से ही सूची आईडी पता नहीं है और क्या सैद्धांतिक रूप से फ्लाई पर नई सूचियां बना सकती हैं?

सर्वोत्तम अभ्यास और "त्रुटि प्रमाण" का प्रकार क्या होगा?

बहुत बहुत धन्यवाद!

उत्तर

2

कक्षा द्वारा चयन करना ठीक है और आपकी स्क्रिप्ट सही है।

मैंने कभी भी अपनी कक्षा के तत्वों का चयन करते समय किसी भी संगतता समस्याओं में भाग नहीं लिया है।

कक्षा के नामों का उपयोग करने के सभी मिलानों के आईडी निर्दिष्ट करने के रोमांच नहीं हैं। यदि आप अन्य तत्वों में गलत तरीके से उपयोग किया गया था, तो इसका असंतोष आपके तत्वों से अधिक तत्वों से मेल खाने की संभावना है।

आईडी द्वारा तत्व निर्दिष्ट करते समय, आप सुनिश्चित हैं कि आपने केवल उन्हीं तत्वों का चयन किया है जिन्हें आप चाहते हैं। इसलिए यह उपयोगी हो सकता है जब आप जानते हैं कि आप कौन से डोम तत्वों से मिलान करना चाहते हैं, और आप उनकी आईडी जानते हैं; जैसा कि आपने देखा, यदि आप फ्लाई पर तत्व बनाते हैं तो यह असंभव हो सकता है।

मुझे लगता है कि आपके मामले में कक्षा के नामों का उपयोग करना सबसे अच्छा अभ्यास होगा। उस क्लास नाम का उपयोग न करें जिसका आप सीएसएस में मेल खाते हैं; यदि यह फ़ॉर्मेटिंग के लिए ज़िम्मेदार है, तो आप (या आपकी टीम के अन्य लोग) व्यवहार व्यवहार में बदलाव के बारे में भूल सकते हैं और इसे अकेले स्वरूपण के लिए अन्य, असंबंधित तत्वों पर इसका उपयोग कर सकते हैं। इसके परिणामस्वरूप बग हो सकते हैं। अलग-अलग 'व्यवहार' और 'प्रेजेंटेशन' कक्षाएं, सीएसएस में प्रस्तुति कक्षाओं का उपयोग करना और jQuery में तत्वों का चयन करने के लिए व्यवहार वर्ग होना बेहतर है।

+0

बहुत बहुत धन्यवाद! यह मुझे सूचियों को संभालने का एक अच्छा विचार देता है! – user1033406

+0

बहुत बढ़िया जोड़ा, धन्यवाद – user1033406

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