2011-11-10 12 views
14

पर ड्रैगगेबल कंटेंटेशन विकल्प कैसे सेट करें jQuery UI ड्रैगगेबल इंटरैक्शन में माता-पिता के रूप में setting the containment के लिए एक अच्छी संपत्ति है।jQuery यूआई पैरेंट के माता-पिता

$(".selector").draggable({ containment: 'parent' }); 

मैं माता-पिता के माता-पिता के रूप में रोकथाम स्थापित करना चाहता हूं। वहाँ यह पूरा करने के लिए कोई स्ट्रिंग मान है, स्ट्रिंग के रूप में विकल्प

'माता-पिता', 'दस्तावेज़', 'खिड़की', [x1, y1, x2, y2]

मैं गणना कर सकते हैं पृष्ठ लोड पर अभिभावक के माता-पिता के x1, y1, x2, y2 और दस्तावेज़ के सापेक्ष एक कंटेनर के लिए सीमा निर्धारित करने के लिए उन मानों का उपयोग करें। लेकिन पृष्ठ लोड के बाद विंडो का आकार बदलने पर कंटेनर स्थिति माता-पिता की मूल स्थिति के सापेक्ष बदल सकती है। देशी 'पैरेंट' विकल्प विंडो आकार बदलने के बावजूद खींचने योग्य तत्व को मूल तत्व के भीतर रखता है।

क्या माता-पिता के माता-पिता का उपयोग करके इस ड्रैगगेबल रोकथाम को पूरा करने का कोई तरीका है? ।

उत्तर

20

documentation के अनुसार, containment विकल्प एक jquery चयनकर्ता या वास्तविक तत्व भी हो सकता है। डॉक्स के अनुसार

$('.selector').each(function(){ 
    $(this).draggable({ 
     containment: $(this).parent().parent() 
    }); 
}); 
+0

मैं एक sortable तालिका के लिए यह करने के लिए प्रयास किया, लेकिन $ (this) .parent() माता-पिता() काम नहीं किया।। कोई अन्य सुझाव? मेरे टीबी के भीतर मेरे टीआर क्रमबद्ध हैं, और मैं उन्हें पूरी तालिका में सीमित करना चाहता हूं। –

3

, आप containment संपत्ति के लिए एक स्ट्रिंग में पास करने के लिए नहीं है: तो आप ऐसा कर सकते हैं:

$('.selector').draggable({ 
    containment: $('.selector').parent().parent() 
}); 

या और भी बेहतर अभी तक। आप किसी भी की में पारित कर सकते हैं:

Selector, Element, String, Array 

तो, बस jQuery (अर्थात $(".selector").parent().parent()) के साथ माता पिता के माता पिता का चयन करें, और 'parent' के बजाय में गुजरती हैं।

0

यह ठीक रूप में अच्छी तरह से काम करता है:

$('.selector').draggable({ 
    containment: "#parent", 
    scroll: false 
}); 
संबंधित मुद्दे