2

我想要一个简单的方法来禁用整个页面(链接,按钮等......全部禁用)然后我需要能够重新启用页面中的所有内容。

有没有轻便的方法?

4

3 回答 3

2

对我来说显而易见的一个选项是设置“覆盖”层:

<div id="cover"></div>

搭配风格:

#cover {
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 100000;
}

如果您需要禁用所有内容,只需使用方法使其可见show

$("#cover").show();

它将像这样工作:http: //jsfiddle.net/KEAh8/

于 2012-05-22T22:05:59.040 回答
1

这不是一种轻量级的方法,因为它必须扫描 DOM 才能找到每个元素,但它会起作用:

$("input, select, button, textarea").attr("disabled", true);

这取决于您的页面大小,以了解这是否是一个好方法,并且选择器可能会根据内容而改变。反转属性设置以再次启用所有内容。

编辑:

正如 Porco 指出的那样,要禁用锚标签,您必须阻止默认操作,因此添加如下内容:

$("a").click(function(e) {
   e.preventDefault();
});
于 2012-05-22T22:06:05.153 回答
0

你可以做:

$('*').attr('disabled', 'disabled').addClass('disabled')

所以现在我们已经禁用了所有输入并为所有内容添加了“禁用”类。现在我们只想禁用链接,我认为这应该可行:

$('body').on('click', '.disabled', function(e) { e.preventDefault(); });

要简单地重新启用所有内容:

$('*').attr('disabled', '').removeClass('disabled')
于 2012-05-22T22:08:56.270 回答