2013-01-21 19 views
5

मेरे पास jquery ui का एक साधारण उदाहरण है। मूल रूप से मुझे वस्तुओं की सूची बनाना है, प्रत्येक एक क्रमबद्ध है। और जो मैं पूरा करना चाहता हूं वह निम्न है: उसी सूची को सॉर्ट करना रद्द करें। उदाहरण के साथ, यदि मैं किसी एक सूची पर किसी तत्व पर किसी तत्व पर क्लिक करता हूं, तो इसे 6 स्थिति में खींचें, और गिरा दिया गया। मैं इसे रोकना चाहता हूं, लेकिन अगर मैं सूची दो में तत्व छोड़ देता हूं, तो यह ठीक है।jQuery UI सॉर्ट करें - दो सूची और मूल सूची के अंदर सॉर्ट करने योग्य को रोकने

मुझे नहीं पता कि मेरी आवश्यकताएं फिट करने के लिए, कैसे निर्दिष्ट किया जाए।

http://jsfiddle.net/sQeZE/3/

+0

तुम्हारा मतलब है तुम * केवल * सूची 1 से लेने के लिए और 2 सूची देने के लिए सक्षम होना चाहते हैं? –

+0

हां, लेकिन अगर मैं मूल के समान सूची में तत्व को छोड़ देता हूं तो इस प्रकार को रोकें। क्या मैं अपने स्वयं को समझाता हूं? –

उत्तर

2

यह बिल्कुल नहीं हो सकता है आप के लिए क्या देख रहे हैं, लेकिन आप receive और stop घटनाओं (वे इसी क्रम में गति प्रदान) करने के लिए बाध्य कर सकते हैं। receive इंगित करता है कि एक सूची आइटम किसी अन्य सूची से प्राप्त हुआ था। जब यह ट्रिगर होता है, तो आप अस्थायी रूप से सॉर्टिंग को अनवरोधित कर सकते हैं। हर समय छँटाई ब्लॉक करने के लिए stop प्रयास:

var blocksort = true; 
//Using jQuery 1.6.4, but use `.on` when available 
$("#sortable, #sortable2").bind('sortreceive', function() { 
    blockSort = false; 
}).bind('sortstop', function (e) { 
    if (blockSort) { 
     e.preventDefault(); 
    } 
    blockSort = true; 
}); 

http://jsfiddle.net/sQeZE/5/

+0

बहुत बहुत धन्यवाद। यह काम करता है क्योंकि मैं –

+0

चाहता हूं हालांकि मेरी आवश्यकता थोड़ा अलग थी। यह एकमात्र उत्तर है जिसने मुझे सही दिशा में मदद की ... धन्यवाद एक गुच्छा :-) –

1

एक विकल्प तो जैसे अपनी सूचियों की रोकथाम को सीमित करने के अन्य सूची होने के लिए, हो सकता है:

$("#sortable").sortable({ 
    connectWith: [$('#sortable2')] 
}); 

$("#sortable2").sortable({ 
    connectWith: [$('#sortable')] 
}); 

यहाँ उदाहरण है: ConnectWith पर्याप्त होने के लिए नहीं लगता है

$("#sortable").sortable({ 
    connectWith: [$('#sortable2')], 
    containment: $('#sortable2') }); 

$("#sortable2").sortable({ 
    connectWith: [$('#sortable')], 
    containment: $('#sortable') }); 

यह बनाता है कि #sortable की वस्तुओं को केवल #sortable2 की सूची के भीतर क्रमबद्ध किया जा सकता है, और इसके विपरीत

+0

सिद्धांत में अच्छा है, लेकिन 'रोकथाम' भी क्रमबद्ध आइटम आंदोलन को प्रतिबंधित करता है ताकि प्रभाव उपयोगकर्ता के लिए बहुत झटकेदार हो। –

+0

यह एक अच्छा मुद्दा है, लेकिन मेरा iu एक अजीब तरीके से व्यवहार करता है। आपके समय और कोड के लिए बहुत बहुत धन्यवाद। –

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