我原以为如果禁用一个div,所有内容也会被禁用。
然而,内容变灰了,但我仍然可以与它交互。
有没有办法做到这一点?(禁用div并使所有内容也被禁用)
我原以为如果禁用一个div,所有内容也会被禁用。
然而,内容变灰了,但我仍然可以与它交互。
有没有办法做到这一点?(禁用div并使所有内容也被禁用)
以上许多答案只适用于表单元素。禁用任何DIV及其内容的简单方法是仅禁用鼠标交互。例如:
$("#mydiv").addClass("disabledbutton");
CSS
.disabledbutton {
pointer-events: none;
opacity: 0.4;
}
补充:
很多人评论说:“这只会禁止鼠标事件,但控件仍然可用”和“您仍然可以使用键盘导航”。您可以将此代码添加到脚本中,以防止通过其他方式(如键盘 Tab 键)访问输入。您可以更改此代码以适应您的需求。
$([Parent Container]).find('input').each(function () {
$(this).attr('disabled', 'disabled');
});
使用类似于 JQuery 的框架来处理以下任务:
function toggleStatus() {
if ($('#toggleElement').is(':checked')) {
$('#idOfTheDIV :input').attr('disabled', true);
} else {
$('#idOfTheDIV :input').removeAttr('disabled');
}
}
使用jQuery禁用和启用div块中的输入元素 可以帮助您!
自jQuery 1.6起,应使用.prop
而不是.attr
进行禁用。
$('#idOfPagination').is(':disabled') ? disablePagination = false : disablePagination = true;
- Martin K.这里是一个快速的注释,适用于不需要
<fieldset disabled="disabled"></fieldset>
添加了disabled属性。在被禁用的你可以使用这个简单的CSS语句来禁用事件
#my-div {
pointer-events:none;
}
将 div
标签包裹在 form
和 fieldset
标签中:
<form>
<fieldset disabled>
<div>your controls</div>
</fieldset>
</form>
<form>
标签包装起来。"<fieldset>" HTML元素用于Web表单中。- https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset - tim-montague与cletu的解决方案类似,但是我在使用那个解决方案时遇到了错误,这是解决方法:
$('div *').prop('disabled',true);
// or
$('#the_div_id *').prop('disabled',true);
对我来说运行良好。
<div disabled="disabled"> Your content here </div>
div[disabled=disabled] {
pointer-events: none;
opacity: 0.4;
}
实现此目的的一种方法是将 disabled 属性添加到 div 的所有子元素中。你可以很容易地实现这一点:
$("#myDiv").find("*").prop('disabled', true);
$("#myDiv")
找到这个 div,.find("*")
获取所有的子节点(包括多层级),然后 .prop('disabled', true)
禁用它们。
这样所有内容都被禁用了,你无法点击、切换选项卡或滚动等操作。同时,你也不需要添加任何 CSS 类。