আমি কীভাবে জ্যাকোয়ারি-ইউআই ড্রাগিগকে অক্ষম করব?


101

আমি কীভাবে একটি জিকুয়েরি ড্র্যাগেবলকে অক্ষম করব, যেমন একটি আপডেটপ্যানেল পোস্টব্যাকের সময়?

উত্তর:


149

একটি ডিসিয়েবলড্র্যাগ (মাইবজেক্ট) এবং একটি সক্ষমড্র্যাগ (মাইবজেক্ট) ফাংশন তৈরি করতে পারে

myObject.draggable( 'disable' )

তারপর

myObject.draggable( 'enable' )

4
এইটা কাজ করে. ড্রাগিগ () এর জন্য পূর্ণ ডক্স এখানে । একই
বাছাইযোগ্য

4
কোনটি বলার অপেক্ষা রাখে না যে ড্রাগিগযোগ্য () ডকগুলি এখানে (এখন?) , নিকব এর লিঙ্ক সহ, উপরে, ডেমোতে যাচ্ছেন । ;)
রাফিন 21

এটি আমাকে দেয় "আরম্ভের আগে ড্রাগেবল পদ্ধতিতে কল করতে পারবেন না; পদ্ধতিটিকে 'অক্ষম' বলার চেষ্টা করা হয়েছিল
হাসিব জুলফিকার

মিয়া হাসেব: এটি দেখুন: স্ট্যাকওভারফ্লো.com
madcolor

70

অস্থায়ীভাবে টেনে নেওয়া যায় এমন আচরণের ব্যবহারটি অক্ষম করতে:

$('#item-id').draggable( "disable" )

স্থায়ীভাবে টেনে নিতে সক্ষম আচরণ অপসারণ করতে:

$('#item-id').draggable( "destroy" )

6
আমি দেখতে পেয়েছি যে 'অক্ষম' এর একটি CSS সম্পর্কিত পার্শ্ব প্রতিক্রিয়া রয়েছে, তবে নির্বিঘ্নে কাজগুলি ধ্বংস করুন।
নীলস ব্রিনচ

4
নিষ্ক্রিয় ব্যবহারের পার্শ্ব প্রতিক্রিয়াটি @ জেডানপুট হ'ল টেনে নেওয়া যায় এমন উপাদানগুলির উপস্থিতি ধূসর। ধ্বংস চেহারা একা মনে হয়।
সমাজি

20

আমি ব্যবহার করেছি jQuery এ টেনে আনে সক্ষম / অক্ষম করতে:

$("#draggable").draggable({ disabled: true });          

$("#draggable").draggable({ disabled: false });

@ ক্যালসিফাসের উত্তর আমার জন্য অস্বচ্ছতা সমস্যা নিয়ে কাজ করে নি, তাই আমি ব্যবহার করেছি:

div.ui-state-disabled.ui-draggable-disabled {opacity: 1;}

মোবাইল ডিভাইসেও কাজ করেছেন।

এখানে কোডটি: http://jsfiddle.net/nn5aL/1/


আপনার জেএসফিডাল কাজ করছে বলে মনে হচ্ছে না। বোতামগুলি ক্লিক করে না (সর্বশেষতম ক্রোম ব্যবহার করে)। আমি এটিকে লিঙ্কে এবং কল করার জন্য আপডেট করার চেষ্টা করেছি button()কিন্তু তাতে কোনও লাভ হয়নি।
ashes999

4
প্রদত্ত সমস্ত সমাধানগুলির মধ্যে, এই একটাই আমার জন্য 100% কাজ করেছিল - অন্যরা (অক্ষম / ধ্বংস ইত্যাদি সংমিশ্রণ ব্যবহার করে) কেবল CSS সমস্যা সমাধান করে নি। আমার অ্যাপ্লিকেশনটিতে ড্রাগ + ড্রপ ব্যবহার করে আমি দেখতে পেলাম যে যে উপাদানগুলিকে স্পর্শ করা হয়নি তার তুলনায় আরম্ভের সময় থেকে যে উপাদানগুলিকে টেনে নেওয়া হয়েছিল তাদের জন্য অস্বচ্ছতা আলাদা different সব খুব অগোছালো। এটি প্রমাণ করার জন্য সমাধান এবং জিসফিল উভয়ের জন্য @ কারিনাপিলারকে ধন্যবাদ।
অ্যান্ডি লরেঞ্জ 21

11

ড্রপ-এ ড্র্যাগেবলকে কীভাবে অক্ষম করতে হবে তা বুঝতে আমার কিছুটা সময় লেগেছে ui.draggablethe ড্রপ ফাংশনটির ভিতরে থেকে টেনে নিয়ে যাওয়া জিনিসটির উল্লেখ করতে:

$("#drop-target").droppable({
    drop: function(event, ui) {
        ui.draggable.draggable("disable", 1); // *not* ui.draggable("disable", 1);
        …
    }
});

এইচটিএইচ কেউ


এর জন্য ধন্যবাদ. অ্যাঙ্গুলারজেএস-এ ড্রাগেজেবল / ড্রপযোগ্য ডিরেক্টরি ব্যবহার করার সময় এই সমাধানটি ভালভাবে কাজ করে।
বানজো ড্রিল

10

দেখে মনে হচ্ছে আসল ডকুমেন্টেশনের দিকে কেউ নজর নেই। সেসময় এটি ছিল না))

নির্দিষ্ট করা অক্ষম বিকল্পের সাহায্যে একটি টেনে আনতে সক্ষম।

$( ".selector" ).draggable({ disabled: true });

অক্ষরে অপশনটি পেতে বা init সেট করার পরে সেট করুন।

//getter
var disabled = $( ".selector" ).draggable( "option", "disabled" );
//setter
$( ".selector" ).draggable( "option", "disabled", true );

এটি কাজ করে তবে আমার ডিভিটি প্রায় 50% অস্বচ্ছতা তৈরি করার একটি পার্শ্ব প্রতিক্রিয়া রয়েছে ... কেন তা আমার কোনও ধারণা নেই।
শয়তানের অ্যাডভোকেট

@ স্কটবিসন যে কোনও সময় আপনি jQuery এ কোনও কিছু অক্ষম করুন, এটি "ইউআই-রাষ্ট্র-অক্ষম" শ্রেণি যুক্ত করে। এটির সাহায্যে আপনি এটি মুছে ফেলতে পারেন: $ ("। Ui-draggable") .Clampus ("UI- রাষ্ট্র-অক্ষম")
কলসিফুস

7

কথোপকথনের ক্ষেত্রে এটিতে ড্রাগ্যাগেবল নামে একটি সম্পত্তি রয়েছে, এটি মিথ্যাতে সেট করে।

$("#yourDialog").dialog({
    draggable: false
});

যদিও প্রশ্নটি পুরানো, আমি প্রস্তাবিত সমাধানটি চেষ্টা করেছিলাম এবং ডায়ালগটির জন্য এটি কার্যকর হয়নি। আশা করি এটি আমার মতো অন্যদের সহায়তা করতে পারে।


আমি নিশ্চিত না যে প্রশ্নটি বিশেষত jQueryUI ডায়ালগগুলির সাথে সম্পর্কিত , তবে তবুও আমি আপনার পোস্টকে সহায়ক বলে মনে করেছি।
শান এরি

3

নীচে এটি এর ভিতরে দেখতে কেমন হবে .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
});

3

আমার কাছে একটি সহজ এবং মার্জিত সমাধান রয়েছে যা ক্লাস, শৈলী, অস্বচ্ছতা এবং স্টাফ নিয়ে গণ্ডগোল করে না।

টেনে আনা যায় এমন উপাদানটির জন্য - আপনি 'স্টার্ট' ইভেন্ট যুক্ত করুন যা প্রতিটি সময় উপাদানকে কোথাও সরিয়ে নেওয়ার চেষ্টা করার সময় কার্যকর হবে। আপনার একটি শর্ত থাকবে যা পদক্ষেপ বৈধ নয়। অবৈধ পদক্ষেপের জন্য - তাদের '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();
            }    

        }
    });

আপনি স্বাগত :)


0

draggableথেকে বৈশিষ্ট্য পরিবর্তন করুন

<span draggable="true">Label</span>

প্রতি

<span draggable="false">Label</span>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.