किसी कारण से मेरी सॉर्ट करने योग्य वस्तुओं के लिए प्लेसहोल्डर लगभग 10px है। मेरी सभी छांटने वाली वस्तुओं की अलग-अलग ऊँचाइयाँ हैं। आइटम को स्थानांतरित करने के लिए मैं प्रत्येक प्लेसहोल्डर की ऊंचाई कैसे बदल सकता हूं?
किसी कारण से मेरी सॉर्ट करने योग्य वस्तुओं के लिए प्लेसहोल्डर लगभग 10px है। मेरी सभी छांटने वाली वस्तुओं की अलग-अलग ऊँचाइयाँ हैं। आइटम को स्थानांतरित करने के लिए मैं प्रत्येक प्लेसहोल्डर की ऊंचाई कैसे बदल सकता हूं?
जवाबों:
मैं आम तौर पर कॉलबैक बाइंड करके इसे हल करता हूं जो प्लेसहोल्डर की ऊंचाई को उस आइटम की ऊंचाई पर सेट करता है जिसे startइवेंट में सॉर्ट किया जा रहा है । यह एक सरल उपाय है जो आपको ठीक-ठाक नियंत्रण देता है कि आप अपने प्लेसहोल्डर को कैसे प्रदर्शित करना चाहते हैं।
$( ".column" ).sortable({
connectWith: ".column",
start: function(e, ui){
ui.placeholder.height(ui.item.height());
}
});
देखें अपडेटेड टेस्ट केस
क्या आपने forcePlaceholderSize:trueसंपत्ति सेट करने की कोशिश की है? JQuery के यूआई छाँटे जाने योग्य प्रलेखन पृष्ठ पर पढ़ें ।
.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; height: 50px !important; }को बदल .ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; }दें (ताकि ऊँचाई हटा दें) तो @DarthJDG आप सही हैं!
क्या आपके तत्व हैं display: block? इनलाइन तत्व हो सकता है कि प्लेसहोल्डर ऊंचाई को सही ढंग से न रखे। उदाहरण के लिए। यह jsField आपके द्वारा बताई गई समस्या के समान है। जोड़ने display: blockके लिए .portletवर्ग फिक्स यह।
"Ui.item.height ()" का उपयोग करने के बजाय आप "ui.helper [0] .scrollHeight" का उपयोग स्थिर परिणाम के लिए कर सकते हैं जब बाहरी कंटेनर से कोई आइटम खींचें।
$( ".column" ).sortable({
connectWith: ".column",
start: function(e, ui){
ui.placeholder.height(ui.helper[0].scrollHeight);
}
});
आप अपने प्लेसहोल्डर के लिए अपने सॉर्ट करने के लिए एक विकल्प के रूप में एक शैली निर्धारित कर सकते हैं।
$( "#sortable" ).sortable({
placeholder: "ui-state-highlight"
});
और बस उस स्टाइल को एक ऊंचाई दें। आशा है कि काम करता है।
मेरे मामले में, मुझे जेपी हेल्लेमन्स के समान समाधान मिला , जिसमें मैं कस्टम के लिए प्लेसहोल्डर की ऊंचाई ( महत्वपूर्ण ) के लिए मजबूर कर रहा हूं और अपने लिए बदलाव देखने के लिए पृष्ठभूमि के साथ दृश्यता भी सेट कर रहा हूं (आप इस तरह से अपने प्लेसहोल्डर को किसी भी तरह से स्टाइल कर सकते हैं जो आप चाहते हैं )।
यह भी साथ काम करता है display: inline-block;
.ui-sortable-placeholder {
background:red !important;
height: 2px !important; // this is the key, set your own height, start with small
visibility: visible !important;
margin: 0 0 -10px 0; // additionaly, you can position your placeholder,
} // in my case it was bottom -10px