2012-10-19 11 views
5

मैं राफेल जेएस 2.0 का उपयोग कर रहा हूं और किसी अन्य तत्व पर ड्रैग के अंत को अनुकरण करना चाहता हूं और फिर मौजूदा तत्व को संभाला जा सकता हूं। यदि यह jquery का उपयोग करके किया जा सकता है जो भी अच्छा होगा।राफेल जेएस में ड्रैग एंड इवेंट का अनुकरण कैसे करें?

कुछ इस तरह:

var child = currentShift.data('endChild'); 
var newX = child.attr('x'); 
if (this !== currentShift) 
{ 
    newX = child.attr('x')-day; 
} 
currentShift.attr({y: child.attr('y'), x: newX, height: child.attr('height')}); 
$(currentShift.node).mouseup(); 
child.remove(); 

मैं त्रुटियों मिलता है क्योंकि बच्चे तत्व एक खींचें की "चाल" भाग में this है। लेकिन इसका उपयोग currentShift से बातचीत करने के लिए किया जा रहा है।

मुझे पता है कि समान प्रभाव प्राप्त करने के कुछ अन्य तरीके हैं, लेकिन मैं जानना चाहता हूं कि किसी मनमानी तत्व के लिए ड्रैग एंड का अनुकरण करने का कोई तरीका है या नहीं।

+0

'var child = currentShift.data()। EndChild;' .... –

+0

@eicto मैं वास्तव में जो सुझाव दे रहा हूं उसे प्राप्त नहीं करता हूं। 'बच्चा' तत्व ठीक से सेट हो रहा है। जिस हिस्से में मैं वास्तव में सोच रहा हूं वह '$ (currentShift.node) है। Mouseup();'। यह पंक्ति वास्तव में उस तत्व के लिए अंत ड्रैग ईवेंट को कॉल नहीं करती है, या कम से कम यह मुझे वर्तमान शफ़्ट तत्व को रिलीज़ करने की बजाय त्रुटियों को देता है जैसा कि मैंने वांछित किया था। – keyneom

उत्तर

1

ऐसा लगता है कि आप call() सिर्फ अपने राफेल जे एस तत्व को (मेरे मामले currentShift में) एक संदर्भ गुजर साथ (मेरे मामले up में) अपने खींचें अंत समारोह के लिए एक संदर्भ का उपयोग कर सकते हैं। मेरे कोड अब इस तरह दिखता है:

var child = currentShift.data('endChild'); 
var newX = child.attr('x'); 
if (this!==currentShift) 
{ 
    newX = child.attr('x')-day; 
} 
currentShift.attr({y: child.attr('y'), x: newX, height: child.attr('height')}); 
if (this !== currentShift) 
    up.call(child); 
else 
    up.call(currentShift); 
child.remove(); 

यह अभी भी वास्तव में नहीं कर रहा है मैं के बाद से चाहते हैं क्या, उपयोगकर्ता माउस को दबाए रखता है, यह मेरी खींचें कदम समारोह के बाद भी तत्व है कॉल करने के लिए प्रयास करता है हटा दिया गया (यानी यह वास्तव में ड्रैग इवेंट को रोकने के लिए मजबूर नहीं कर रहा है, यह केवल अप ईवेंट को कॉल कर रहा है और फिर बहुत सारी गैर-घातक त्रुटियां दे रहा है क्योंकि चाल फ़ंक्शन को कॉल करने का प्रयास करते समय तत्व मौजूद नहीं है।)

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

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