2012-07-30 12 views
8

मुझे ड्रैगगेबल के रूप में सेट किया गया तत्व लेने में सक्षम होना चाहिए और भौतिक रूप से उस तत्व को कंटेनर में ले जाना चाहिए क्योंकि वर्तमान कार्यक्षमता के रूप में इसे ओवरले करने के विपरीत।jQuery ड्रैगगेबल + ड्रॉपपेबल - भौतिक रूप से ड्रैग किए गए आइटम को गिराए गए कंटेनर में

उदाहरण के लिए

तो:

<div class="container"></div> 
<div class="image"> 
    <img class="thumb" src="images/Koala.jpg" alt="" /> 
</div> 

$(function() { 
    $(".image").draggable(); 
    $(".container").droppable({ 
     drop: function (event, ui) { 
      alert('dropped!'); 
     } 
    }); 
}); 

तो बाद चित्र खींच ली गई है और 'कंटेनर' मैं वास्तविक HTML तत्व वहाँ ले जाया जा करने की जरूरत है div में गिरा दिया।

तो घटना के बाद हुई है, अगर मैं क्रोम के डेवलपर उपकरण का उपयोग कर स्रोत को देखने के लिए थे मैं देखना होगा:

<div class="container"> 
    <div class="image"> 
     <img class="thumb" src="images/Koala.jpg" alt="" /> 
    </div> 
</div> 

यह संभव है?

धन्यवाद

+0

आप अपने स्रोत दृश्य में डोम में जेएस परिवर्तन कभी नहीं देख पाएंगे। हालांकि आप अपने ब्राउज़र के देव उपकरण में परिवर्तन देख सकते हैं। – DanielB

+0

हाँ यही मेरा मतलब था। मैं अपने प्रश्न को संशोधित करूंगा। – Jared

उत्तर

6

यह घसीटा तत्व बढ़ना चाहिए डोम पेड़ में ड्रॉप करने योग्य।

drop: function (event, ui) { 
    $(this).append(ui.draggable); 
} 
+2

यह इसे DOM ऑब्जेक्ट में डालता है, लेकिन (मेरा उदाहरण उत्तर देखें), ड्रैगगेबल को सीएसएस के साथ छोड़ दिया गया है जो इसे कंटेनर के बाहर दृष्टि से रखता है। – saluce

+0

@saluce: यह सीएसएस परिभाषाओं पर निर्भर करता है जो पहले से मौजूद हो सकता है। शायद ओपी की एक परिभाषा है, जो कि सभी छवियों को .container में फ़्लोट करने दें, फिर उसे कोई अतिरिक्त सीएसएस सेट करने की आवश्यकता नहीं है। – DanielB

2

ड्रॉप समारोह में, $(this) droppable खींचने योग्य स्वीकार कर रहा है, तो बस droppable को खींचने योग्य जोड़ने के लिए .append() का उपयोग करें: http://jsfiddle.net/saluce/P6TjC/

$(function() { 
    $(".image").draggable({helper: 'original'}); 
    $(".container").droppable({ 
     drop: function (event, ui) { 
      $(this).append(ui.draggable.css({position: 'static'})); 
      alert('dropped!'); 
     } 
    }); 
});​ 
+3

'स्थिर' तत्व को खींचने के साथ जारी रखने में समस्याएं उत्पन्न हुईं। मैंने उपयोग किया: $ (यह) .append (ui.draggable.css ({स्थिति: "सापेक्ष", शीर्ष: "", बाएं: ""})); – Florian

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