2013-03-04 4 views
9

यह शायद करना बहुत आसान है, लेकिन मैं हमेशा बहुत जटिल सोचता हूं।JQuery-UI ड्रैगगेबल मूल पॉप पर रीसेट करें।

मैंने अभी एक निश्चित चौड़ाई/ऊंचाई + फ्लोट के साथ #draggable/#droppable के साथ एक सरल परीक्षण स्थापित किया है: बाएं।

मैं फिर एक रीसेट बटन #droppable पर स्नैप किए जाने के बाद # मूलभूत स्थिति में #draggable को रीसेट करने में सक्षम होना चाहता हूं। (नीचे पंक्ति)

$(document).ready(function() { 

    $("#draggable").draggable 
    ({ 
     revert: 'invalid', 
     snap: '#droppable', 
     snapMode: 'corner', 
     snapTolerance: '22' 

    }); 
}); 

    $("#droppable").droppable 
    ({ 
     accept: '#draggable', 
     drop: function(event, ui) 
     { 
      $(this).find("#draggable").html(); 
     } 
}); 

    $(".reset").click(function() { 
    /* What do I put here to reset the #draggable to it's original position before the snap */ 
}); 

उत्तर

7

खींचने योग्य आइटम अपनी मूल स्थिति का ट्रैक नहीं रखते हैं जो मुझे पता है; केवल ड्रैग के दौरान और वापस snapped करने के लिए। तुम सिर्फ हालांकि अपने दम पर ऐसा कर सकते हैं,:

$("#draggable").data({ 
    'originalLeft': $("#draggable").css('left'), 
    'origionalTop': $("#draggable").css('top') 
}); 

$(".reset").click(function() { 
    $("#draggable").css({ 
     'left': $("#draggable").data('originalLeft'), 
     'top': $("#draggable").data('origionalTop') 
    }); 
}); 

http://jsfiddle.net/ExplosionPIlls/wSLJC/

+0

मुझे जो चाहिए वह लगता है। हालांकि, जब मैं \t $ ("# draggable") जोड़ता हूं। डेटा ({'originalLeft': $ ("# draggable")। Css ('left'), 'origionalTop': $ ("# draggable")। Css ('टॉप') }); ड्रैगगेबल – user2110966

+0

@ user2110966 काम करना बंद कर देता है मुझे लगता है कि आपकी टिप्पणी अपूर्ण है? –

+0

मैंने इसे संपादित किया, इसके बारे में खेद है। "ड्रैगगेबल काम करना बंद कर देता है"। मैंने पूरी चीज़ को कॉपी/पेस्ट करने की भी कोशिश की। यह अजीब है, क्योंकि यह स्पष्ट रूप से डेमो पर काम करता है। – user2110966

16

मैं एक परियोजना

$("#reset").click(function() { 
    $(".draggable-item").animate({ 
     top: "0px", 
     left: "0px" 
    }); 
}); 

मेरे लिए चाल किया

+0

मैंने इसका संयोजन किया और मूल निर्देशांक को दूसरे उत्तर से 0,0 पर सेट करने के बजाय प्राप्त किया। – BFWebAdmin

+0

यह किसी भी पूर्ण स्थिति के लिए असली अच्छा लग रहा है के लिए यह उत्कृष्ट है! – chrispepper1989

+0

वाह यह चिकनी है :) –

2

मैं बस मिला है पर इस का इस्तेमाल किया निम्नलिखित के साथ बड़ी सफलता:

$(".draggable-item").removeAttr("style"); 
1

मैंने h0dges के मूल विचार का उपयोग किया। मैंने जो गेंदें बनाई हैं, वे अपनी मूल स्थिति में लौट आए, लेकिन मैंने उन शैलियों को खो दिया जो उन्हें गेंदों में बनाते थे। इसलिए, मैंने गेंदों की शैलियों को रखा और बस अपनी मूल स्थिति में लौटने के लिए अपनी शीर्ष और बाएं शैलियों को रीसेट कर दिया:

function endRound() { 
    $(".ball").css({"top":"", "left":""}); 
} 
संबंधित मुद्दे