반응형
DIV 요소와 내부의 모든 것을 비활성화하는 방법
자바스크립트를 사용하여 DIV와 모든 콘텐츠를 비활성화해야 합니다.맹세코 간단한 일을 하는 것은
<div disabled="true">
전에는 저를 위해 일했지만, 어떤 이유에서인지 더 이상 작동하지 않습니다.나는 왜 그런지 이해하지 않아요.
IE10: "클릭 미" 텍스트는 회색으로 표시되지 않으며 클릭 핸들러는 여전히 작동합니다.
사실 IE10에서 일하는 것이 필요합니다.아래는 제 코드입니다.
<html>
<script>
function disableTest(){
document.getElementById("test").disabled = true;
var nodes = document.getElementById("test").getElementsByTagName('*');
for(var i = 0; i < nodes.length; i++){
nodes[i].disabled = true;
}
}
</script>
<body onload="disableTest();">
<div id="test">
<div onclick="alert('hello');">
Click Me
</div>
</div>
</body>
</html>
다음 CSS 문은 클릭 이벤트를 비활성화합니다.
pointer-events:none;
이거 먹어봐요.
$("#test *").attr("disabled", "disabled").off('click');
위에서 jquery를 사용하는 것은 보이지 않지만 태그로 나열되어 있습니다.
Javascript 및 jQuery
function sah() {
$("#div2").attr("disabled", "disabled").off('click');
var x1=$("#div2").hasClass("disabledDiv");
(x1==true)?$("#div2").removeClass("disabledDiv"):$("#div2").addClass("disabledDiv");
sah1(document.getElementById("div1"));
}
function sah1(el) {
try {
el.disabled = el.disabled ? false : true;
} catch (E) {}
if (el.childNodes && el.childNodes.length > 0) {
for (var x = 0; x < el.childNodes.length; x++) {
sah1(el.childNodes[x]);
}
}
}
#div2{
padding:5px 10px;
background-color:#777;
width:150px;
margin-bottom:20px;
}
.disabledDiv {
pointer-events: none;
opacity: 0.4;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<div id="div1">
<div id="div2" onclick="alert('Hello')">Click me</div>
<input type="text" value="SAH Computer" />
<br />
<input type="button" value="SAH Computer" />
<br />
<input type="radio" name="sex" value="Male" />Male
<Br />
<input type="radio" name="sex" value="Female" />Female
<Br />
</div>
<Br />
<Br />
<input type="button" value="Click" onclick="sah()" />
인라인 스크립트를 중지하는 것은 어렵다고 생각합니다. 대신 다음과 같이 시도해 보십시오.
<div id="test">
<div>Click Me</div>
</div>
및 스크립트:
$(function () {
$('#test').children().click(function(){
alert('hello');
});
$('#test').children().off('click');
});
Fiddle을 확인하고 도움이 되는지 확인합니다.
클릭 이벤트를 비활성화하려면 "비활성화"를 사용할 수 없습니다.IE6-9에서 어떻게 작동했는지는 모르겠지만 크롬에서는 작동하지 않았고, IE10에서도 그렇게 작동하지 않아야 합니다.
다음을 취소하는 이벤트를 첨부하여 클릭 시 이벤트를 비활성화할 수도 있습니다.
;(function () {
function cancel () { return false; };
document.getElementById("test").disabled = true;
var nodes = document.getElementById("test").getElementsByTagName('*');
console.log(nodes);
for (var i = 0; i < nodes.length; i++) {
nodes[i].setAttribute('disabled', true);
nodes[i].onclick = cancel;
}
}());
또한 노드에서 "사용 안 함"을 직접 설정해도 setAttribute를 사용하여 속성을 추가할 수 없습니다.
언급URL : https://stackoverflow.com/questions/15555295/how-to-disable-div-element-and-everything-inside
반응형
'programing' 카테고리의 다른 글
SQL Server에 대한 연결을 설정하는 동안 네트워크 관련 또는 인스턴스 관련 오류가 발생했습니다. (0) | 2023.07.31 |
---|---|
Angular 2/material의 경우 대화 상자에서 자동 포커스 사용 안 함 (0) | 2023.07.31 |
독립 실행형 Java 응용 프로그램에서 Spring 3 자동 배선 사용 (0) | 2023.07.31 |
jQuery 및 TinyMCE: 텍스트 영역 값이 제출되지 않음 (0) | 2023.07.31 |
결과 집합에서 문자 집합을 가져오는 방법은 무엇입니까? (0) | 2023.07.31 |