[javascript] 모든 div 컨텐츠를 비활성화하는 방법

div를 비활성화하면 모든 콘텐츠도 비활성화되었다는 가정하에있었습니다.

그러나 내용은 회색으로 표시되지만 여전히 상호 작용할 수 있습니다.

그렇게 할 수있는 방법이 있습니까? (div 비활성화 및 모든 콘텐츠 비활성화)



답변

위의 답변 중 다수는 양식 요소에서만 작동합니다. 내용을 포함하여 DIV를 비활성화하는 간단한 방법은 마우스 상호 작용을 비활성화하는 것입니다. 예를 들면 다음과 같습니다.

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

CSS

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


답변

JQuery와 같은 프레임 워크를 사용하여 다음과 같은 작업을 수행하십시오.

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

jQuery사용하여 Div 블록에서 입력 요소 비활성화 및 활성화 가 도움이 될 것입니다!

jQuery 1.6부터는 비활성화 .prop대신 사용해야 합니다 .attr.


답변

난 그냥 요소를 활성화 및 비활성화하는이 확장 방법 을 언급 하고 싶었다 . 속성을 직접 추가하고 제거하는 것보다 훨씬 깨끗한 방법이라고 생각합니다.

그런 다음 간단하게 수행하십시오.

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


답변

다음은 div가 필요하지 않고 블록 요소 만 필요한 사람들을위한 빠른 의견입니다. HTML5 <fieldset disabled="disabled"></fieldset>에서는 disabled 속성이 있습니다. 비활성화 된 필드 세트의 모든 양식 요소는 비활성화되어 있습니다.


답변

disabled 속성은 DIV 요소 에 대한 W3C 사양의 일부가 아니며 양식 요소 에만 해당됩니다 .

Martin이 제안한 jQuery 접근 방식은이를 달성 할 수있는 유일한 방법입니다.


답변

cletu의 솔루션과 비슷하지만 해당 솔루션을 사용하는 동안 오류가 발생했습니다.

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

나에게 잘 작동


답변

이 간단한 CSS 문을 사용하여 이벤트를 비활성화 할 수 있습니다

#my-div {
    pointer-events:none;
}