সমস্ত ডিভ সামগ্রী কীভাবে অক্ষম করবেন


278

আমি এই ধারণার মধ্যে ছিলাম যে আমি যদি একটি ডিভ অক্ষম করি তবে সমস্ত সামগ্রীও অক্ষম হয়ে গেছে।

তবে বিষয়বস্তু ধূসর হয়েছে তবে আমি এটির সাথে এখনও ইন্টারঅ্যাক্ট করতে পারি।

এটা করার কোন উপায় আছে? (একটি ডিভ অক্ষম করুন এবং সমস্ত সামগ্রীও অক্ষম করুন)

উত্তর:


530

উপরের উত্তরগুলির মধ্যে অনেকগুলি কেবল ফর্ম উপাদানগুলিতে কাজ করে। কোনও ডিআইভি এর বিষয়বস্তু সহ অক্ষম করার একটি সহজ উপায় হ'ল মাউস ইন্টারঅ্যাকশন অক্ষম করা। উদাহরণ স্বরূপ:

$("#mydiv").addClass("disabledbutton");

CSS

.disabledbutton {
    pointer-events: none;
    opacity: 0.4;
}

18
সঠিক উত্তরের জন্য +1 - আপনি আমাকে মাত্র কয়েক ঘন্টা কাজ বাঁচিয়েছেন !!! চোখ অশ্রু এবং প্রেম হতে পারে - এটি সব ব্রাউজার দ্বারা সমর্থিত: caniuse.com/#feat=pointer-events
tfmontague

10
আমি জানি এটি বেশ দেরি হয়ে গেছে, কিন্তু এখনও, এটি IE 8, আইই 9 এবং আইই 10 দ্বারা সমর্থন করে না Just কেবলমাত্র সবাইকে জানাতে। caniuse.com/#feat=pointer-events
Razort4x

14
এটি কেবল মাউস ইভেন্টগুলিকেই অস্বীকার করবে তবে নিয়ন্ত্রণটি এখনও সক্ষম আছে।
মারিও লেভেরো

44
দ্রষ্টব্য: এই সমাধানের সাহায্যে আপনি এই উপাদানটি বা এই উপাদানটির কোনও শিশু, একটি মাউস বা কোনও স্পর্শ ডিভাইসে ইন্টারেক্ট করতে পারবেন না। তবে আপনি এখনও আপনার কীবোর্ড দিয়ে এটিতে ট্যাব করতে পারেন।
আদম

12
যদিও কীবোর্ডের মাধ্যমে এখনও অ্যাক্সেসযোগ্য।
টোমর ডাব্লু

147

JQuery এর মতো কাঠামো ব্যবহার করুন যেমন:

function toggleStatus() {
    if ($('#toggleElement').is(':checked')) {
        $('#idOfTheDIV :input').attr('disabled', true);
    } else {
        $('#idOfTheDIV :input').removeAttr('disabled');
    }   
}

ডিসি ব্লকে ইনপুট উপাদানগুলিকে অক্ষম করুন এবং সক্ষম করুন jQuery ব্যবহার করা আপনাকে সহায়তা করা উচিত!

JQuery 1.6 হিসাবে, আপনার অক্ষম করার .propপরিবর্তে ব্যবহার করা উচিত .attr


2
সমস্ত ইনপুট নির্বাচন করে "ম্যানুয়ালি" ... আমি এটি চেষ্টা করব, তবে ডিভটিকে অক্ষম হিসাবে চিহ্নিত করার পক্ষে কি যথেষ্ট হওয়া উচিত নয়?
জুয়ান

আমি যখন অক্ষম করতে অক্ষম করার জন্য টগল করি তখন অক্ষম থাকার জন্য প্রয়োজনীয় কিছু পৃষ্ঠাগুলি বোতামগুলিও টগল করা হয় ...
juan

আপনি এই বোতামগুলি ফিল্টার করতে পারেন এবং একটি ".attr ('অক্ষম', সত্য) করতে পারেন;" প্রতিবার তাদের! কেবলমাত্র একটি do ('# idOfPagination') করুন att অ্যাটর ('অক্ষম', সত্য); if {} else {} এর পরে কনস্ট্রাক্ট করুন।
মার্টিন কে।

প্রকৃতপক্ষে তাদের স্থিতি অন্য কোথাও নিয়ন্ত্রণ করা হয়, আমি যে তালিকার পৃষ্ঠাগুলি করছি তা পৃষ্ঠার উপর নির্ভর করে (তাদের সর্বদা অক্ষম করার দরকার নেই)। আমি এরকম someway বিষয়বস্তু নিয়ন্ত্রণ মূল অবস্থা পরিবর্তন ছাড়া প্রয়োজন চাই
জুয়ান

আপনি jquery এর সাথে তাদের স্থিতিও পরীক্ষা করে এটি সংরক্ষণ করতে পারেন। করুন: $ ('# idOfPagination')। (': অক্ষম')? disablePagination = মিথ্যা: disablePagination = সত্য; বিশ্বব্যাপী একবারে পৃষ্ঠাটি লোড হওয়ার পরে সরাসরি।
মার্টিন কে।

50

আমি কেবল উপাদানগুলি সক্ষম এবং অক্ষম করার জন্য এই এক্সটেনশন পদ্ধতিটি উল্লেখ করতে চেয়েছিলাম । আমি মনে করি এটি সরাসরি গুণাবলী যুক্ত করা এবং মুছে ফেলার চেয়ে এটি অনেক পরিষ্কার উপায়।

তারপরে আপনি কেবল এটি করুন:

$("div *").disable();

এই সমাধানটি বড় পাতায় পার্শ্ব প্রতিক্রিয়া সৃষ্টি করতে পারে! (কোনও ডিভ ধারকের কোনও স্থির রেফারেন্স নেই / প্রতিটি অন্তর্নিহিত উপাদানটি সম্বোধন করা হয়)
মার্টিন কে।

আপনি যদি প্যানেল নিয়ন্ত্রণটি অক্ষম করেন আপনি এসপ নেট ব্যবহার করছেন তবে আপনি <div अक्षम = "অক্ষম"> পাবেন। এটি আইই তে শিশু উপাদানগুলির জন্য (যেমন তারা অক্ষম হয়ে পড়ে) কাজ করে তবে অন্যান্য ব্রাউজারগুলিতে নয়। আপনি ক্রোম / ফায়ারফক্সে সমস্ত শিশু ফর্ম উপাদানগুলি অক্ষম করতে পারেন জ্যাকুরির অক্ষম ফাংশনটি ... $ ("ডিভ [অক্ষম = 'অক্ষম']: ইনপুট") এর সাথে সংযুক্ত করে dis অক্ষম ();
স্টুয়ার্ট

34

এখানে এমন একটি লোকেদের জন্য দ্রুত মন্তব্য দেওয়া হচ্ছে যাদের ডিভের প্রয়োজন নেই তবে কেবল একটি ব্লকলেট রয়েছে। এইচটিএমএল 5 <fieldset disabled="disabled"></fieldset>এ অক্ষম বৈশিষ্ট্য পেয়েছে। অক্ষম ফিল্ডসেটের প্রতিটি ফর্ম উপাদান অক্ষম।


1
এটি একটি দুর্দান্ত উত্তর - এটি গতিশীল আইটেমগুলিকে এতক্ষণে অক্ষম অবস্থায় থাকতে পারে যেহেতু তারা তৈরির ক্ষেত্রে অক্ষম রাষ্ট্রের পরীক্ষা করার চেয়ে ব্লক উপাদানগুলির মধ্যে থাকে - এবং উপাদানগুলি সত্যই অক্ষম থাকে।
সালমনমুজ

এটি সেরা উত্তর। এটি সবচেয়ে শব্দার্থগতভাবে সঠিক, ব্রাউজারকে বলছে যে এই ফিল্ডসেটের মধ্যে সমস্ত ইনপুট অক্ষম করা উচিত। এটি কীবোর্ডটিকে সম্মান করে এবং জেএস নিবন্ধকরণের জন্য মাউস পরিচালনা করার দরকার নেই। একটি নোট, যদিও, এই মন্তব্যের সময় হিসাবে, এজ অন্য ফিল্ডসেটের মধ্যে প্যারেন্ট ফিল্ডসেটগুলি থেকে অক্ষম বৈশিষ্ট্যযুক্ত মানটির উত্তরাধিকারী হবে না।
স্টিফেন ওয়াটকিন্স

দুর্দান্ত এক, সর্বদা সেরা সমাধানগুলি হ'ল সহজতম ধন্যবাদ।
স্টুডিওক্স

15

অক্ষম বৈশিষ্ট্যটি ডিআইভি উপাদানগুলির জন্য ডাব্লু 3 সি অনুচ্ছেদের অংশ নয় , কেবল ফর্ম উপাদানগুলির জন্য

মার্টিনের প্রস্তাবিত jQuery পদ্ধতির হ'ল আপনি এটি সম্পাদন করতে যাচ্ছেন একমাত্র নির্বোধ উপায়।


12

ক্লিটুর সমাধানের মতোই, তবে আমি সেই সমাধানটি ব্যবহার করে একটি ত্রুটি পেয়েছি, এটিই কার্যকর:

$('div *').prop('disabled',true);
// or
$('#the_div_id *').prop('disabled',true);

আমার উপর ভাল কাজ করে



6

ব্রাউজারগুলি পরীক্ষা করেছে: আইই 9, ক্রোম, ফায়ারফক্স এবং jquery-1.7.1.min.js

    $(document).ready(function () {
        $('#chkDisableEnableElements').change(function () {
            if ($('#chkDisableEnableElements').is(':checked')) {
                enableElements($('#divDifferentElements').children());
            }
            else {
                disableElements($('#divDifferentElements').children());
            }
        });
    });

    function disableElements(el) {
        for (var i = 0; i < el.length; i++) {
            el[i].disabled = true;

            disableElements(el[i].children);
        }
    }

    function enableElements(el) {
        for (var i = 0; i < el.length; i++) {
            el[i].disabled = false;

            enableElements(el[i].children);
        }
    }

5

আপনি জানেন যে এইচটিএমএল ইনপুট নিয়ন্ত্রণগুলি 'অক্ষম' বৈশিষ্ট্যটি ব্যবহার করে অক্ষম করা যায়। একবার কোনও ইনপুট নিয়ন্ত্রণের জন্য 'অক্ষম' বৈশিষ্ট্য সেট হয়ে গেলে, এই জাতীয় নিয়ন্ত্রণের সাথে যুক্ত ইভেন্ট হ্যান্ডলারগুলি শুরু করা হয় না।

আপনি যদি চান তবে এইচটিএমএল উপাদানগুলির উপরের আচরণের অনুকরণ করতে হবে যা ডিভের মতো 'অক্ষম' বৈশিষ্ট্যটিকে সমর্থন করে না।

আপনার যদি একটি ডিভি থাকে এবং আপনি এই ডিভের উপর ক্লিক বা কোনও মূল ইভেন্টটি সমর্থন করতে চান, তবে আপনাকে দুটি জিনিস করতে হবে: 1) আপনি যখন ডিভটি অক্ষম করতে চান, তার অক্ষম বৈশিষ্ট্যটি যথারীতি সেট করুন (কেবলমাত্র এর সাথে মেনে চলতে কনভেনশন) ২) আপনার ডিভের ক্লিক এবং / অথবা কী হ্যান্ডলারগুলিতে, ডিভের উপর অক্ষম বৈশিষ্ট্য সেট করা আছে কিনা তা পরীক্ষা করে দেখুন। যদি তা হয় তবে কেবল ক্লিক বা কী ইভেন্টটিকে উপেক্ষা করুন (যেমন কেবল অবিলম্বে ফিরে আসুন)। যদি অক্ষম বৈশিষ্ট্য সেট না করা থাকে তবে আপনার ডিভের ক্লিক এবং / অথবা কী ইভেন্টের যুক্তিটি করুন do

উপরের পদক্ষেপগুলি ব্রাউজারের পাশাপাশি স্বাধীন।


5

এটি অর্জনের একটি উপায় হ'ল ডিভের সমস্ত শিশুদের প্রতিবন্ধী প্রাপ যুক্ত করা। আপনি এটি খুব সহজেই অর্জন করতে পারেন:

$("#myDiv").find("*").prop('disabled', true);

$("#myDiv")ডিভটি সন্ধান করে .find("*"), আপনাকে সমস্ত স্তরে সমস্ত শিশু নোড দেয় এবং .prop('disabled', true)প্রতিটি অক্ষম করে।

এইভাবে সমস্ত সামগ্রী অক্ষম হয়ে গেছে এবং আপনি সেগুলিতে ক্লিক করতে পারবেন না, সেগুলিতে ট্যাব করতে পারেন, তাদের স্ক্রল করুন ইত্যাদি Also এছাড়াও, আপনার কোনও CSS ক্লাস যুক্ত করার দরকার নেই।


4

divএকটি fieldsetট্যাগের মধ্যে মোড়ানো :

<fieldset disabled>
<div>your controls</div>
</fieldset>

2

আমি ভেবেছিলাম কয়েক নোটে চিপ করব।

  1. <div> আইই 8/9 এ অক্ষম করা যায়। আমি ধরে নিলাম এটি "ভুল" এবং এটি আমাকে ফেলে দিয়েছে
  2. .RemoveProp () ব্যবহার করবেন না, কারণ এটি উপাদানটিতে স্থায়ীভাবে প্রভাব ফেলে। পরিবর্তে .prop ("অক্ষম", মিথ্যা) ব্যবহার করুন
  3. "(" # মাইডিভ ") filter ফিল্টার (" ইনপুট, টেক্সারিয়া, নির্বাচন করুন, বোতাম ") prop

2

এটি অনুসন্ধানকারীদের জন্য,

আমি সবচেয়ে ভাল করেছিলাম,

$('#myDiv *').attr("disabled", true);                   
$('#myDiv *').fadeTo('slow', .6);

2

মন্তব্যে উল্লিখিত হিসাবে, আপনি এখনও ট্যাব কী ব্যবহার করে উপাদানগুলির মধ্যে নেভিগেট করে উপাদান অ্যাক্সেস করতে সক্ষম হন। সুতরাং আমি এটি সুপারিশ:

$("#mydiv")
  .css({"pointer-events" : "none" , "opacity" :  "0.4"})
  .attr("tabindex" , "-1");

2

আপনি যদি অক্ষমদের শব্দার্থতাকে নীচে রাখতে চান

<div disabled="disabled"> Your content here </div>

আপনি নিম্নলিখিত সিএসএস যোগ করতে পারে

div[disabled=disabled] {
  pointer-events: none;
  opacity: 0.4;
}

এখানে সুবিধা হ'ল আপনি যে ডিভিতে কাজ করতে চান তার উপর ক্লাস নিয়ে কাজ করছেন না


1

আমি ক্লিটাসের ফাংশনের একটি উন্নত সংস্করণ ব্যবহার করব:

 $.fn.disable = function() {
    return this.each(function() {          
      if (typeof this.disabled != "undefined") {
        $(this).data('jquery.disabled', this.disabled);

        this.disabled = true;
      }
    });
};

$.fn.enable = function() {
    return this.each(function() {
      if (typeof this.disabled != "undefined") {
        this.disabled = $(this).data('jquery.disabled');
      }
    });
};

যা উপাদানটির মূল 'অক্ষম' সম্পত্তি সঞ্চয় করে।

$('#myDiv *').disable();

1

কীভাবে ডিআইভির বিষয়বস্তু অক্ষম করবেন

সিএসএস pointer-eventsসম্পত্তি একাই শিশু উপাদানগুলি স্ক্রোলিং থেকে অক্ষম করে না, এবং এটি আইই 10 দ্বারা সমর্থিত নয় এবং ডিআইভি উপাদানগুলির জন্য (কেবল এসভিজির জন্য) সমর্থনযোগ্য নয়। http://caniuse.com/#feat=pointer-events

সমস্ত ব্রাউজারে একটি ডিআইভি বিষয়বস্তু অক্ষম করতে।

javascript:

$("#myDiv")
  .addClass("disable")
  .click(function () {
    return false;
  });

CSS:

.disable {
  opacity: 0.4;
}
// Disable scrolling on child elements
.disable div,
.disable textarea {
  overflow: hidden;
}

আইআই 10 এবং তার চেয়ে কম বয়সী ব্যতীত সমস্ত ব্রাউজারগুলিতে একটি ডিআইভির সামগ্রী অক্ষম করতে।

javascript:

$("#myDiv").addClass("disable");

CSS:

.disable {
  // Note: pointer-events not supported by IE10 and under
  pointer-events: none;
  opacity: 0.4;
}
// Disable scrolling on child elements
.disable div,
.disable textarea {
  overflow: hidden;
}

1

নীচে মাস্কিং ডিভগুলি সক্ষম করার জন্য আরও বিস্তৃত সমাধান

  • আলাদা সিএসএস নেই
  • পুরো পৃষ্ঠা বা কেবল একটি উপাদান আবরণ
  • মুখোশের রঙ এবং অস্বচ্ছতা উল্লেখ করুন
  • জেড-ইনডেক্স নির্দিষ্ট করুন যাতে আপনি মুখোশের উপর পপআপগুলি দেখাতে পারেন
  • মাস্কের উপরে একটি ঘন্টাঘড়ি কার্সার দেখান
  • ম্যাক্সফের উপর মাস্কিং ডিভ অপসারণ যাতে পরে আলাদা দেখা যায়
  • উপাদান পুনরায় আকার যখন প্রসারিত মাস্ক
  • আপনি এটি স্টাইল করতে পারেন যাতে মুখোশ উপাদান ফিরে

এছাড়াও অন্তর্ভুক্ত রয়েছে ঘড়িঘড়ি ও আওয়ারগ্লাস অফ যা আলাদাভাবে ব্যবহার করা যেতে পারে

// elemOrId - jquery element or element id, defaults to $('<body>')'
// settings.color defaults to 'transparent'
// settings.opacity defaults to 1
// settings.zIndex defaults to 2147483647
// if settings.hourglasss==true change cursor to hourglass over mask
function maskOn(elemOrId, settings) {
    var elem=elemFromParam(elemOrId);
    if (!elem) return;

    var maskDiv=elem.data('maskDiv');
    if (!maskDiv) {
        maskDiv=$('<div style="position:fixed;display:inline"></div>');
        $('body').append(maskDiv);
        elem.data('maskDiv', maskDiv);
    }

    if (typeof settings==='undefined' || settings===null) settings={};
    if (typeof settings.color==='undefined' || settings.color===null) settings.color='transparent';
    if (typeof settings.opacity==='undefined' || settings.opacity===null) settings.opacity=1;
    if (typeof settings.zIndex==='undefined' || settings.zIndex===null) settings.zIndex=2147483647;
    if (typeof settings.hourglass==='undefined' || settings.hourglass===null) settings.hourglass=false;

    // stretch maskdiv over elem
    var offsetParent = elem.offsetParent();
    var widthPercents=elem.outerWidth()*100/offsetParent.outerWidth()+'%';
    var heightPercents=elem.outerHeight()*100/offsetParent.outerHeight()+'%';
    maskDiv.width(widthPercents);
    maskDiv.height(heightPercents);
    maskDiv.offset($(elem).offset());

    // set styles
    maskDiv[0].style.backgroundColor = settings.color;
    maskDiv[0].style.opacity = settings.opacity;
    maskDiv[0].style.zIndex = settings.zIndex;

    if (settings.hourglass) hourglassOn(maskDiv);

    return maskDiv;
}

// elemOrId - jquery element or element id, defaults to $('<body>')'
function maskOff(elemOrId) {
    var elem=elemFromParam(elemOrId);
    if (!elem) return;

    var maskDiv=elem.data('maskDiv');
    if (!maskDiv) {
        console.log('maskOff no mask !');
        return;
    }

    elem.removeData('maskDiv');
    maskDiv.remove();
}

// elemOrId - jquery element or element id, defaults to $('<body>')'
// if decendents is true also shows hourglass over decendents of elemOrId, defaults to true
function hourglassOn(elemOrId, decendents) {
    var elem=elemFromParam(elemOrId);
    if (!elem) return;

    if (typeof decendents==='undefined' || decendents===null) decendents=true;

    if ($('style:contains("hourGlass")').length < 1) $('<style>').text('.hourGlass { cursor: wait !important; }').appendTo('head');
    if ($('style:contains("hourGlassWithDecendents")').length < 1) $('<style>').text('.hourGlassWithDecendents, .hourGlassWithDecendents * { cursor: wait !important; }').appendTo('head');
    elem.addClass(decendents ? 'hourGlassWithDecendents' : 'hourGlass');
}

// elemOrId - jquery element or element id, defaults to $('<body>')'
function hourglassOff(elemOrId) {
    var elem=elemFromParam(elemOrId);
    if (!elem) return;

    elem.removeClass('hourGlass');
    elem.removeClass('hourGlassWithDecendents');
}

function elemFromParam(elemOrId) {
    var elem;
    if (typeof elemOrId==='undefined' || elemOrId===null) 
        elem=$('body');
    else if (typeof elemOrId === 'string' || elemOrId instanceof String) 
        elem=$('#'+elemOrId);
    else
        elem=$(elemOrId);

    if (!elem || elem.length===0) {
        console.log('elemFromParam no element !');
        return null;
    }

    return elem;
}

এটি দিয়ে আপনি উদাহরণস্বরূপ করতে পারেন:

maskOn(); // transparent page mask
maskOn(null, {color:'gray', opacity:0.8}); // gray page mask with opacity
maskOff(); // remove page mask
maskOn(div); // transparent div mask
maskOn(divId, {color:'gray', hourglass:true}); // gray div mask with hourglass
maskOff(div); // remove div mask

দেখতে jsfiddle


আপনার পৃষ্ঠাগুলি পুরো পৃষ্ঠাটি অক্ষম করার জন্য খুব ভাল তবে এটি নির্দিষ্ট ডিভ অংশে কাজ করছে না প্রিয় আমি চেষ্টা করেছি।
3 বিধি

1
function disableItems(divSelector){
    var disableInputs = $(divSelector).find(":input").not("[disabled]");
    disableInputs.attr("data-reenable", true);
    disableInputs.attr("disabled", true);
}

function reEnableItems(divSelector){
    var reenableInputs = $(divSelector).find("[data-reenable]");
    reenableInputs.removeAttr("disabled");
    reenableInputs.removeAttr("data-reenable");
}

1

অথবা কেবল CSS এবং একটি "অক্ষম" শ্রেণি ব্যবহার করুন।
দ্রষ্টব্য: অক্ষম বৈশিষ্ট্যটি ব্যবহার করবেন না।
বন্ধ / বন্ধ jQuery সঙ্গে জগাখিচির প্রয়োজন নেই।
এটি অনেক সহজ এবং ক্রস ব্রাউজারে কাজ করে:

.disabled{
    position: relative;
}
.disabled:after{
    content: "";
    position: absolute;
    width: 100%;
    height: inherit;
    background-color: rgba(0,0,0,0.1);
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

তারপরে আপনি আপনার পৃষ্ঠাটি আরম্ভ করার সময় বা একটি বোতাম টগল করার সময় এটিকে বন্ধ এবং বন্ধ করতে পারেন

if(myDiv !== "can be edited"){
    $('div').removeClass('disabled');
} else{
    $('div').addClass('disabled');
}

0

জিকিউরিয়ায় অন্য একটি উপায় হ'ল অভ্যন্তরীণ উচ্চতা, অভ্যন্তরীণ প্রস্থ এবং ধারণকৃত ডিআইভির অবস্থান এবং কেবল একই ডিভাইসের উপরের স্বচ্ছ, অন্য একটি ডিআইভি overেকে দেওয়া। এটি কেবলমাত্র ইনপুটগুলির পরিবর্তে container পাত্রে সমস্ত উপাদানগুলিতে কাজ করবে।

যদিও জেএস অক্ষম থাকলেও আপনি এখনও ডিআইভি ইনপুট / সামগ্রী ব্যবহার করতে সক্ষম হবেন তা মনে রাখবেন। উপরের উত্তরগুলির সাথেও একই রকম।


ব্যবহারকারী যদি নিয়ন্ত্রণের মাধ্যমে ট্যাব করেন? নেভিগেট করতে মাউস ব্যবহার করা ব্যবহারকারীদের কেবলমাত্র যদি না থাকে তবে এটি মোটেও সহায়তা করে না।
সিভভি

তবে ইনপুটগুলি অক্ষম করার সাথে এটি একত্রে কার্যকর হতে পারে। যদি ওভারলেয়িং ডিভটি রূপান্তরিত হিসাবে স্টাইল করা হয় তবে এটি একটি ভাল ভিজ্যুয়াল সূচক যে বিভাগটি অক্ষম disabled
xr280xr


0

এই সিএসএস কেবল / নোগ্রিপ্ট সমাধান ফিল্ডসেট (বা একটি ডিভি বা অন্য কোনও উপাদান) এর উপরে একটি ওভারলে যুক্ত করে, মিথস্ক্রিয়াটিকে রোধ করে:

fieldset { position: relative; }
fieldset[disabled]::after { content: ''; display: inline-block; position: absolute; top: 0; left: 0; right: 0; bottom: 0; pointer-events: all; background: rgba(128,128,128,0.2); }

আপনি যদি অদৃশ্য অর্থাত্ স্বচ্ছ ওভারলে চান, তবে ব্যাকগ্রাউন্ডটি যেমন rgba (128,128,128,0) তে সেট করুন, কারণ এটি ব্যাকগ্রাউন্ড ছাড়া কাজ করবে না। উপরোক্ত আই 9 + এর জন্য কাজ করে। নিম্নলিখিত অনেক সহজ সিএসএস আই 11 + এ কাজ করবে

[disabled] { pointer-events: none; }

ক্রৌমিয়াম


0

আপনি যদি কেবল লোককে ক্লিক করা বন্ধ করার চেষ্টা করছেন এবং সুরক্ষা সম্পর্কে ভীতিজনকভাবে উদ্বিগ্ন না হন - আমি 99999 এর জেড-ইনডেক্সের সাথে এটির সূক্ষ্মরূপে একটি নিখুঁত স্থানযুক্ত ডিভ পেয়েছি। আপনি কোনও লিখিত সামগ্রী ক্লিক বা অ্যাক্সেস করতে পারবেন না কারণ এটির উপরে ডিভটি রাখা হয়েছে। কিছুটা সহজ হতে পারে এবং এটি অপসারণ না করা অবধি কেবল সিএসএসের সমাধান।


0

কনফিগারযোগ্য জাভাস্ক্রিপ্ট লাইব্রেরি রয়েছে যা এইচটিএমএল স্ট্রিং বা ডোম উপাদান নিয়ে থাকে এবং অনাকাঙ্ক্ষিত ট্যাগ এবং বৈশিষ্ট্যগুলি সরিয়ে দেয়। এগুলি এইচটিএমএল স্যানিটাইজার হিসাবে পরিচিত । উদাহরণ স্বরূপ:

যেমন ডোমপুরিফায় ify

DOMPurify.sanitize('<div>abc<iframe//src=jAva&Tab;script:alert(3)>def</div>'); 
// becomes <div>abcdef</div>

-1

সম্পাদনা করুন: নীচে আমি ব্যবহার করেছি .on()পদ্ধতি, পরিবর্তে ব্যবহার .bind()পদ্ধতি

$(this).bind('click', false);
$(this).bind('contextmenu', false);

আপনার সেটিং অপসারণ করতে, আপনি .unbind()পদ্ধতি ব্যবহার করতে পারেন । যদিও .off()পদ্ধতিটি প্রত্যাশার মতো কাজ করে না।

 $(this).unbind('click', false);
 $(this).unbind('contextmenu', false);

গবেষণার পরেও কয়েকশ সমাধান! পয়েন্টার-ইভেন্টগুলি সম্পর্কে শিখছি, নীচে আমি যা করেছি তা হল।

যেমন @ কোকোডোকো তার সমাধানে উল্লেখ করেছেন যা আইই বাদে সমস্ত ব্রাউজারের জন্য উপযুক্ত। আইই 11 এpointer-events কাজ করুন এবং নিম্ন সংস্করণগুলিতে নয়। আমি আইই ১১ এও লক্ষ্য করেছি , পয়েন্টার-ইভেন্টগুলি শিশু উপাদানগুলিতে কাজ করে না। এবং তাই আমাদের যদি নীচের মতো কিছু থাকে

 <a href="www.preshmalinetpereira.wordpress.com"><i class="car icon"></i><span>My Blog</span></a>

যেখানে সন্তানের উপাদান রয়েছে , এটিpointer-events: none কাজ করবে না

এই সমস্যাটি কাটিয়ে ওঠার জন্য আমি একটি ফাংশন লিখেছিলাম যা আইই এর পয়েন্টার-ইভেন্ট হিসাবে কাজ করতে পারে এবং নিম্ন সংস্করণগুলিতে কাজ করবে।

জেএস ফাইলে

DisablePointerEvents(".DisablePointerEvents");


function DisablePointerEvents(classId) {
    $(classId).each(function () {
        $(this).on('click', false );
        $(this).on('contextmenu', false );
    });
}

সিএসএস ফাইলে

.DisablePointerEvents{
    pointer-events: none;
    opacity: 0.7;
    cursor: default;
}

এইচটিএমএলে

 <a href="www.preshmalinetpereira.wordpress.com" class="DisablePointerEvents"><i class="car icon"></i><span>My Blog</span></a>

এটি দৃশ্যাবলিকে নকল করে pointer-eventsযেখানে pointer-eventsকাজ করে না এবং যখন শিশু উপাদানগুলির উপরের অবস্থাটি ঘটে।

জেএস ফিডল একই জন্য

https://jsfiddle.net/rpxxrjxh/


-1

সরলসেট সমাধান

আমার নির্বাচক তাকান

$myForm.find('#fieldsetUserInfo input:disabled').prop("disabled", false);

fieldsetUserInfoDIV আছে সমস্ত ইনপুট আমি অক্ষম বা সক্ষম করতে চান রয়েছে

আশা করি এটি আপনাকে সাহায্য করবে

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