如何禁用DIV元素和里面的一切
我需要禁用一个DIV和它的所有内容使用Javascript。 我可以发誓,做一个简单的
<div disabled="true">
之前为我工作,但由于某种原因,它不再有效。 我不明白为什么。
在IE10中:文本“Click Me”不会变灰,点击处理程序仍然有效。
我其实需要这个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>
尝试这个!
$("#test *").attr("disabled", "disabled").off('click');
我没有看到你使用上面的jquery,但是你把它列为标签。
以下css语句禁用点击事件
pointer-events:none;
我认为内联脚本很难停下来,你可以试试这个:
<div id="test"> <div>Click Me</div> </div>
和脚本:
$(function () { $('#test').children().click(function(){ alert('hello'); }); $('#test').children().off('click'); });
CHEKOUT FIDDLE,看到它帮助
阅读更多关于.off()
我没有经验,但似乎BlockUI是你在找什么。 试试看。
纯JavaScript没有jQuery
<script type="text/javascript"> function sah() { 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]); } } } </script> <body> <div id="div1"> <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()" /> </body>
您不能使用“禁用”来禁用点击事件。 我不知道如何或如果它在IE6-9工作,但它不适用于Chrome,它不应该在IE10上工作。
您也可以禁用onclick事件,方法是附加一个取消以下内容的事件:
;(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。