我的假设是,如果我禁用了一个div,所有的内容也都禁用了。
然而,内容是灰色的,但我仍然可以与它互动。
有办法做到吗?(禁用一个div,让所有的内容也禁用)
我的假设是,如果我禁用了一个div,所有的内容也都禁用了。
然而,内容是灰色的,但我仍然可以与它互动。
有办法做到吗?(禁用一个div,让所有的内容也禁用)
当前回答
类似于cletu的解决方案,但我得到了一个错误使用的解决方案,这是解决方案:
$('div *').prop('disabled',true);
// or
$('#the_div_id *').prop('disabled',true);
对我来说还行
其他回答
我想我得插几句话。
< div >可以在IE8/9中被禁用。我认为这是“不正确的”,这让我感到困惑 不要使用. removeprop(),因为它对元素有永久的影响。使用.prop("disabled", false)代替 $ (" # myDiv”).filter(“输入、文本区域、选择按钮”)。Prop ("disabled", true)更显式,它将捕获一些您在:input中遗漏的表单元素
在jQuery中,另一种方法是获得包含DIV的内部高度、内部宽度和位置,然后简单地覆盖另一个DIV,透明的,在相同大小的上面。这将适用于容器内的所有元素,而不仅仅是输入。
记住,尽管禁用了JS,你仍然可以使用DIVs的输入/内容。上面的答案也一样。
类似于cletu的解决方案,但我得到了一个错误使用的解决方案,这是解决方案:
$('div *').prop('disabled',true);
// or
$('#the_div_id *').prop('disabled',true);
对我来说还行
或者只使用css和一个“disabled”类。 注意:不要使用disabled属性。 不需要摆弄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');
}
我只想提到这个用于启用和禁用元素的扩展方法。我认为这比直接添加和删除属性要干净得多。
然后你只需做:
$("div *").disable();