2010-07-06 7 views
14

मैं एक droppable एक बूंद ईवेंट हैंडलर के साथ है:वास्तव में खींचने और छोड़ने के बिना मैं jQuery UI Droppable के साथ ड्रॉप ईवेंट को कैसे ट्रिगर करूं?

$(this).droppable({ 
    drop:function(){ 
    console.log('OMG You Dropped It!'); 
    } 
}); 

मैं एक खींचने योग्य:

$(this).draggable(); 

मुझे क्या करना चाहते हैं droppable पर ड्रॉप ईवेंट हैंडलर को गति प्रदान करता है वास्तव में खींचने और खींचने योग्य छोड़ने के बिना। मैं व्यवहार को शारीरिक रूप से निष्पादित किए बिना वास्तविक व्यवहार को अनुकरण करना चाहता हूं।

मैंने सोचा था कि कुछ इस तरह करना होगा:

$(droppable).trigger('drop', [draggable]); 

दुर्भाग्य से, यह काफी इतना आसान नहीं है। क्या कोई जानता है कि मैं इसे कैसे पूरा कर सकता हूं?

+0

http://stackoverflow.com/a/29284621/278405?programmatically- ड्रैग और ड्रॉप-तत्व-पर-एक और तत्व – cychoi

उत्तर

11

आप एक अलग कार्य करने के लिए अपने drop हैंडलर में कोड बढ़ना चाहिए।
फिर आप हैंडलर और अन्य जगहों पर फ़ंक्शन को कॉल कर सकते हैं।

$("#droppable").droppable({ 
     drop: function(event, ui) { 
      do stuff } 
    }); 
var drop_function = $("#droppable").droppable.option('drop'); 
drop_function(); 

इस तरह आप मिल जो कुछ भी होगा जब droppable पर कुछ गिर:

+1

वर्णन करने के लिए कि मैं क्या करना चाहते ऊपर सरल है नमूना कोड, नहीं * * कोड। वैसे भी, यह मेरे मुद्दे को कैसे हल करेगा? – Kappers

+0

आप ईवेंट को ट्रिगर करने के बजाय फ़ंक्शन को कॉल कर सकते हैं। – SLaks

+3

http://snipplr.com/view/24431/ यह एक उदाहरण है जिसका अर्थ है @ स्लक्स का अर्थ हो सकता है। =) – Roylee

9

आप समारोह विकल्प-विधि के माध्यम से ड्रॉप कॉल के साथ जुड़े को गति प्रदान कर सकते हैं। बेशक आप इसे असाइन करने के बजाए फ़ंक्शन निष्पादित कर सकते हैं। फिर भी एक कार्य को छोड़ने के लिए एक अच्छा विचार है, कि आप स्पष्ट रूप से स्पष्टता के लिए कहीं और परिभाषित करते हैं।

+2

+1 एक QUNit परीक्षण के दौरान मूल फ़ंक्शन परिभाषा (उदा।) के दायरे से बाहर कॉल करने में सक्षम होने के लिए +1। – StuperUser

+4

नया वाक्यविन्यास है: $ ("# droppable")। Droppable ('option', 'drop')। – StuperUser

+0

@StuperUser मुझे यह नहीं मिला। $ ("# droppable") कैसे जानता है कि किस तत्व को खींचा गया था और उस पर गिरा दिया गया था? – adardesign

1

jQuery की हाल के संस्करण के साथ StuperUser द्वारा बताया के रूप में और ajmurmann के उत्तर के आधार पर, आपको क्या करना चाहिए:

$("#droppable").droppable({ 
    drop: function(event, ui) { 
     do stuff } 
}); 
var drop_function = $("#droppable").droppable('option', 'drop'); 
drop_function(); 
संबंधित मुद्दे