我想要一个简单的方法来禁用整个页面(链接,按钮等......全部禁用)然后我需要能够重新启用页面中的所有内容。
有没有轻便的方法?
对我来说显而易见的一个选项是设置“覆盖”层:
<div id="cover"></div>
搭配风格:
#cover {
position: fixed;
width: 100%;
height: 100%;
z-index: 100000;
}
如果您需要禁用所有内容,只需使用方法使其可见show
。
$("#cover").show();
它将像这样工作:http: //jsfiddle.net/KEAh8/
这不是一种轻量级的方法,因为它必须扫描 DOM 才能找到每个元素,但它会起作用:
$("input, select, button, textarea").attr("disabled", true);
这取决于您的页面大小,以了解这是否是一个好方法,并且选择器可能会根据内容而改变。反转属性设置以再次启用所有内容。
编辑:
正如 Porco 指出的那样,要禁用锚标签,您必须阻止默认操作,因此添加如下内容:
$("a").click(function(e) {
e.preventDefault();
});
你可以做:
$('*').attr('disabled', 'disabled').addClass('disabled')
所以现在我们已经禁用了所有输入并为所有内容添加了“禁用”类。现在我们只想禁用链接,我认为这应该可行:
$('body').on('click', '.disabled', function(e) { e.preventDefault(); });
要简单地重新启用所有内容:
$('*').attr('disabled', '').removeClass('disabled')