मैं एक jQuery ड्रैगेबल को कैसे निष्क्रिय कर सकता हूं, जैसे कि अपडेटपैनल पोस्टबैक के दौरान?
मैं एक jQuery ड्रैगेबल को कैसे निष्क्रिय कर सकता हूं, जैसे कि अपडेटपैनल पोस्टबैक के दौरान?
जवाबों:
एक DisableDrag (myObject) और एक EnableDrag (myObject) फ़ंक्शन बना सकता है
myObject.draggable( 'disable' )
फिर
myObject.draggable( 'enable' )
ड्रैग करने योग्य व्यवहार उपयोग को अस्थायी रूप से अक्षम करने के लिए:
$('#item-id').draggable( "disable" )
ड्रैग करने योग्य व्यवहार को स्थायी रूप से हटाने के लिए:
$('#item-id').draggable( "destroy" )
JQuery I में ड्रैग करने योग्य को सक्षम / अक्षम करने के लिए:
$("#draggable").draggable({ disabled: true });
$("#draggable").draggable({ disabled: false });
@ कैलिसिपस जवाब मेरे लिए अस्पष्टता की समस्या के साथ काम नहीं करता था, इसलिए मैंने उपयोग किया:
div.ui-state-disabled.ui-draggable-disabled {opacity: 1;}
मोबाइल उपकरणों पर भी काम किया।
यहाँ कोड है: http://jsfiddle.net/nn5aL/1/
button()
लेकिन इससे कोई मदद नहीं मिली।
यह मुझे थोड़ा समय लगा कि ड्रॉप-डाउन पर ui.draggable
ड्रैग करने योग्य को निष्क्रिय कैसे करें - ड्रॉप फ़ंक्शन के अंदर से ऑब्जेक्ट को खींचे जाने के संदर्भ के लिए उपयोग करें:
$("#drop-target").droppable({
drop: function(event, ui) {
ui.draggable.draggable("disable", 1); // *not* ui.draggable("disable", 1);
…
}
});
HTH किसी
ऐसा लगता है कि कोई भी मूल दस्तावेज को नहीं देखता है। हो सकता है उस समय ऐसा नहीं था))
निर्दिष्ट विकल्प के साथ ड्रैगबल को प्रारंभ करें।
$( ".selector" ).draggable({ disabled: true });
निष्क्रिय विकल्प प्राप्त करें या सेट करें, init के बाद।
//getter
var disabled = $( ".selector" ).draggable( "option", "disabled" );
//setter
$( ".selector" ).draggable( "option", "disabled", true );
एक संवाद के मामले में, इसके पास एक संपत्ति है, जिसे ड्रैगेबल कहा जाता है, इसे असत्य पर सेट करें।
$("#yourDialog").dialog({
draggable: false
});
अंततः प्रश्न पुराना है, मैंने प्रस्तावित समाधान की कोशिश की और यह संवाद के लिए काम नहीं आया। आशा है कि यह मेरी तरह दूसरों की मदद कर सकता है।
निम्नलिखित यह है कि यह अंदर की तरह दिखेगा .draggable({});
$("#yourDraggable").draggable({
revert: "invalid" ,
start: function(){
$(this).css("opacity",0.3);
},
stop: function(){
$(this).draggable( 'disable' )
},
opacity: 0.7,
helper: function () {
$copy = $(this).clone();
$copy.css({
"list-style":"none",
"width":$(this).outerWidth()
});
return $copy;
},
appendTo: 'body',
scroll: false
});
मेरे पास एक सरल और सुरुचिपूर्ण समाधान है जो कक्षाओं, शैलियों, अस्पष्टता और सामान के साथ गड़बड़ नहीं करता है।
ड्रैग करने योग्य तत्व के लिए - आप 'स्टार्ट' इवेंट को जोड़ते हैं जो हर बार जब आप एलिमेंट को कहीं ले जाने की कोशिश करते हैं, तो उसे अंजाम देगा। आपके पास एक ऐसी शर्त होगी जो चलना कानूनी नहीं है। उन चालों के लिए जो अवैध हैं - उन्हें 'e.preventDefault ();' नीचे दिए गए कोड की तरह।
$(".disc").draggable({
revert: "invalid",
cursor: "move",
start: function(e, ui){
console.log("element is moving");
if(SOME_CONDITION_FOR_ILLEGAL_MOVE){
console.log("illegal move");
//This will prevent moving the element from it's position
e.preventDefault();
}
}
});
आपका स्वागत है :)