2009-11-05 20 views
11

मैं यह देखने के लिए कैसे जांच सकता हूं कि एक jQuery UI प्लगइन किसी तत्व से जुड़ा हुआ है या नहीं? उदाहरण के लिए, अगर मैं .sortable विजेट लोड करता हूं, तो इसकी उपस्थिति कैसे निर्धारित की जा सकती है?कैसे जांचें कि एक jQuery UI प्लगइन किसी तत्व से जुड़ा हुआ है या नहीं?

इस प्रश्न के पीछे उद्देश्य यह है कि मैं टॉगल करने की क्षमता चाहता हूं। तत्वों पर वर्गीकृत। इसे देखने की क्षमता के साथ। Sortable मौजूद है, तो मैं इसे हटाने के लिए .ortable ('नष्ट') कॉल कर सकते हैं।

उत्तर

13

सभी यूई विजेट्स उनके नाम को तत्व के कंटेनर डेटा के लिए सच मानते हैं। jqueryui भी एक डेटा फ़िल्टर अभिव्यक्ति जोड़ता है।

var $elem = $('div.sortable-container:data(sortable)'); 
if ($elem.length){ 
    // $elem contains list of elements that have sortable widget attached 
} 
+1

जांचना कि कोई सीएसएस शैली लागू है या नहीं, लेकिन यह थोड़ा और स्पष्ट है, और मुझे यह पसंद है। धन्यवाद कोरी! – Jay

+0

ग्रेट सॉल्यूशन, और मुझे आश्चर्य है कि यह वेब खोजने के लिए जितना हुआ था, उतना ही यह पता चला। मैं चाहता था कि वे इसे और अधिक स्पष्ट करेंगे कि ऐसा होता है? –

1

सभी यूआई विजेटों को कक्षा ui-widget दिया गया है। आम तौर पर प्रत्येक विजेट विजेट तत्व को मुख्य तत्व में भी जोड़ता है। इस मामले में आपको ui-sortable सॉर्ट करने योग्य कंटेनर में जोड़ा जाना चाहिए।

+0

महान जवाब, धन्यवाद केविन। – Jay

3

किसी को भी बाद में jQueryUI संस्करणों में इस समाधान की तलाश में है, तो sortable प्लगइन का डेटा कंटेनर का नाम अब uiSortable और sortable नहीं है। तत्वों को खोजने के लिए jQueryUI 1.10

अर्थात का उपयोग कर इम यू उपयोग कर सकते हैं

var $elem = $('#sortable-container:data(uiSortable)'); 

और तत्वों है कि नहीं अभी तक

var $elem = $('#sortable-container:not(:data(uiSortable))'); 
5

प्रारंभ कर रहे हैं jQuery यूआई 1.8 के बाद से, विशेष चयनकर्ताओं are being added to Sizzle for each widget खोजने के लिए। ये :ui-widgetname के रूप में हैं।

एक तत्व पर एक sortable विजेट की उपस्थिति की जांच के लिए, आपको उपयोग कर सकते हैं:

if(element.is(':ui-sortable')) { 
    element.sortable('destroy'); 
} 
+0

छोटा और सरल –

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