2011-11-07 17 views
6

मैं इस पृष्ठ पर 2 उदाहरण की तरह एक sortable है:बदलने तरह व्यवहार

http://jqueryui.com/demos/sortable/items.html

sortable लक्ष्यों का एक मिश्रण है:

  • कि उठाया जा सकता है जो और
  • अक्षम वस्तुओं को पुन: व्यवस्थित किया गया, जिन्हें उठाया नहीं जा सकता (लेकिन ड्रॉप लक्ष्य हैं)।

समस्या यह है कि घटक सॉर्टिंग पर मेरे इरादे की व्याख्या करता है। एक उदाहरण निम्न सूची के पहले तत्व उठा और चौथे स्थान पर खींचकर इस तरह दिखेगा के रूप में:

ए बी सी एक्स एक्स ==> बी सी एक्स एक एक्स

यहाँ एक्स के विकलांग आइटम को दर्शाते हैं।

मेरे आवेदन में मैं सॉर्टिंग व्यवहार अलग होना चाहता हूं। जब कोई लक्ष्य उठाया जाता है और एक अक्षम आइटम (एक एक्स) पर रखा जाता है तो सूची को लक्ष्य को समायोजित करने के साथ-साथ सूची को स्थानांतरित नहीं किया जाना चाहिए, बल्कि इसके बजाय लक्ष्य और अक्षम आइटम को पदों को स्वैप करना चाहिए।

(4 के लिए 1 से खींचें) पहले की तरह ही उदाहरण का उपयोग:

ABCXX ==> XBCAX

तो ड्रॉप लक्ष्य सामान्य है (यानी विकलांग नहीं) व्यवहार पहले की तरह ही होना चाहिए (3 करने के लिए 1 से खींचें):

ABCXX ==> एक कैलेंडर पर अपॉइंटमेंट फिर से व्यवस्थित करने के लिए, जब आप एक तारीख से ऊपर एक चुनना और एक खाली तारीख पर छोड़ चाहने की तरह इसके बारे में BCAXX

Think , आप अन्य नियुक्तियों को नहीं चाहते हैं एक दिन के साथ shuffle करने के लिए।

+0

ऐसा लगता है कि http://stackoverflow.com/questions/2263687/jquery-sortable-obtain-2-elements-being-swapped – sirhc

उत्तर

2

मैंने आपकी वांछित कार्यक्षमता के साथ एक jsfiddle एक साथ रखा है।

मूल रूप से मैं क्रमबद्ध परिवर्तन के कार्य में बंधता हूं और मैं यह देखने के लिए जांच करता हूं कि क्या सहायक शीर्ष पर मौजूद तत्व अक्षम है या नहीं। यदि ऐसा है तो मैं उस तत्व को उस स्थान पर ले जाता हूं जहां सहायक से शुरू हुआ था।

यहाँ jsfiddle http://jsfiddle.net/YjhzR/3/

आशा इस मदद करता है!

अद्यतन:

http://jsfiddle.net/YjhzR/6/

+1

द्वारा अनुशंसित स्वैपबल प्लगइन के साथ जा रहा हूं यदि यह ओपी चाहता था (मुझे अभी भी बिल्कुल यकीन नहीं है कि क्या है) तो बधाई हो, आप बक्षीस के लायक हैं :) दूसरी तरफ - कब मैंने तुम्हारा बेवकूफ इस्तेमाल किया, एक्स 1 गायब हो गया जब मैंने इसके आगे कुछ डालने की कोशिश की और ओपी ने अपने उदाहरणों में निरंतर विकल्प दिखाया। – naugtur

+0

मुझे आपके 2 कथन नहीं समझते हैं "एक्स 1 गायब हो गया जब मैंने इसके आगे कुछ डालने की कोशिश की"। आप केवल मेरे पहेली में किसी अन्य तत्व के ऊपर या नीचे तत्वों को स्थानांतरित कर सकते हैं। और "ओपी ने अपने उदाहरणों में निरंतर विकल्प दिखाया" –

+1

यह बहुत ही आशाजनक दिख रहा है, हालांकि मैं नाउगुर के समान कुछ भी देख रहा हूं। असल में, यदि आप एक्स 1 पर सी खींचते हैं, तो एक्स 1 गायब हो जाता है, जिसके परिणामस्वरूप ए बी सी होता है, जब परिणाम ए बी एक्स 1 सी होना चाहिए। आम तौर पर, जब आप उनमें से एक एक्स 1 होता है तो दो आसन्न वस्तुओं को स्वैप करने का प्रयास करते समय ऐसा लगता है। कोड के लिए बहुत धन्यवाद, हालांकि वर्तमान में यह शुरुआत के रूप में बहुत उपयोगी है - अगर आप बग को ठीक कर सकते हैं, तो बक्षीस तुम्हारा है! – pheelicks

5

यह वास्तव में आपके प्रश्न का उत्तर नहीं होगा, लेकिन मुझे लगता है कि जब आप मामले के अनुरूप नहीं होते हैं तो आपको तैयार समाधान का उपयोग करने के लिए मजबूर नहीं होना चाहिए।

मुझे लगता है कि तत्वों को रखने और व्यवहार को लागू करने के लिए jquery-ui के ड्रैगगेल का उपयोग करने के लिए आपको अपना नियंत्रण बनाना चाहिए। आपका उपयोगकेस व्यवहार के कुछ बुनियादी तर्कों में उदाहरण से अलग है।

यदि आपको और आवश्यकताएं मिलती हैं तो यह भविष्य के लिए भी फायदेमंद होगा।

+0

मैं आप से सहमत हैं कुछ ऐसा करने के लिए तैयार किए गए समाधान को मजबूर नहीं करना जो इसे करने के लिए डिज़ाइन नहीं किया गया था। लेकिन, एक jquery विशेषज्ञ नहीं होने के नाते मैं उत्सुक था कि सिर्फ सॉर्टिंग तर्क बदलने के लिए "अच्छा तरीका" था या नहीं। सरहैक का लिंक एक कस्टम नियंत्रण – pheelicks

+0

बनाने के लिए एक आशाजनक प्रारंभिक बिंदु की तरह दिखता है, मुझे अभी भी लगता है कि यह योजना बनाने की तरह यह करने के लिए और अधिक काम करेगा। कृपया जो आपने किया और यदि आप सफल हुए तो वापस रिपोर्ट करें। – naugtur

+0

जबकि कीथ ने मेरे प्रश्न के लिए एक वैध समाधान प्रदान किया, इसके साथ खेलने के बाद, यह पता चला कि यह वास्तव में एक सूची को दोबारा व्यवस्थित करने का एक बहुत भ्रमित तरीका है। इस प्रकार, मैं शायद sirhc – pheelicks

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