मैंने jQuery में "2 डी स्लाइडर" बनाया है जिसमें 2 पैरामीटर एक बाउंडिंग बॉक्स में "हैंडल" खींचकर एक साथ छेड़छाड़ किए जाते हैं।ड्रैगगेबल व्यवहार को प्रोग्रामेटिक रूप से ट्रिगर करने के लिए कैसे करें
मैंने इसे एक पैरेंट div के भीतर "हैंडल" div को घोंसला करके और ड्रैगिंग व्यवहार को सुविधाजनक बनाने के लिए jQuery UI प्लगइन का उपयोग करके इसे कार्यान्वित किया है। एचटीएमएल लगता है:
<div class="Slider2d" id="grid_spacing_both">
<div class="Slider2dHandle" id="grid_spacing_both_handle"></div>
</div>
jQuery लगता है:
$(".Slider2d").mousedown(function(event){
// get location of click and reposition handle to click location
});
:
$(".Slider2dHandle").draggable({
containment: "parent",
scroll: false,
drag: function(event, ui) {
// calculates position and updates value input boxes
}
});
मैं भी कुछ कोड है कि माता-पिता div के भीतर किसी भी क्लिक के स्थान पर संभाल पुनर्स्थानापन्न बना लिया है
मैं जो करना चाहता हूं वह उपर्युक्त विधि को संशोधित करता है ताकि उपयोगकर्ता पैरेंट div में कहीं भी क्लिक कर सकें, हैंडल को क्लिक स्थान पर पुनर्स्थापित किया गया हो, और फिर बिना लेटिन के हैंडल खींचना शुरू करें माउस बटन ऊपर। असल में, मुझे ड्रैग कार्यक्षमता प्रोग्रामेटिक रूप से ट्रिगर करने का एक तरीका पता लगाने की आवश्यकता है।
मैं कुछ सुझाव here और here पाया है, और इसलिए की तरह उपरोक्त विधि बदलकर अपने सिफारिशों को लागू करने का प्रयास किया:
$(".Slider2d").mousedown(function(event){
// get location of click and reposition handle to click location
handle = $(".Slider2d").children(".Slider2dHandle");
handle.trigger(event);
});
यह सबसे तकनीकी अर्थ में काम करता है, लेकिन इसकी सुपर धीमी गति से और मैं एक मिल सफारी से त्रुटि संदेशों का गुच्छा मुझे बता रहा है "रेंज एरर: अधिकतम कॉल स्टैक आकार पार हो गया।" जो मैं सोच रहा हूं वह यह हो रहा है कि जब मैं हैंडल पर ईवेंट ट्रिगर करता हूं, तो यह पैरेंट पर बुलबुला होता है, जो फिर ट्रिगर को फिर से कॉल करता है। मैंने एक ईवेंट फेंक कर बुलबुले को रोकने की कोशिश की है। StipPropagation .trigger() कॉल से पहले और बाद में मेरे कोड में, लेकिन इसका कोई फायदा नहीं हुआ।
तो, अगर किसी को यह काम करने के तरीके पर कोई सुझाव है तो मैं वास्तव में इसकी सराहना करता हूं। मेरे पास बैकअप योजना here है, लेकिन ऐसा लगता है कि मुझे अनावश्यक रूप से जटिल होना चाहिए।
धन्यवाद!
कोई प्रश्न संबंधित है। मुझे उम्मीद है कि यह आपकी मदद करेगा (http://stackoverflow.com/questions/5239649/can-click-on-jquery-draggable-parent-start-drag) –
@ फ़्रान मैं वास्तव में उपरोक्त प्रश्न में से एक को संदर्भित करता हूं - यह वह जगह है मुझे प्रस्तावित समाधान मिला कि तरह का लेकिन मेरे लिए काफी काम नहीं करता है। किसी भी मामले में, हालांकि, सुझाव के लिए धन्यवाद। – jkjenner