Javascript jQuery返回禁用的所有页面,然后启用

Javascript jQuery返回禁用的所有页面,然后启用,javascript,jquery,html,Javascript,Jquery,Html,我想一个简单的方法来设置enteir页面禁用(链接,按钮等…所有禁用),然后我需要能够重新启用页面中的所有 有一种轻松的方式吗?对我来说,一个显而易见的选择是设置“覆盖”层: 如果您需要禁用所有内容,只需使用show方法使其可见即可 $("#cover").show(); 它的工作原理如下:这不是一个轻量级的方法,因为它必须扫描DOM才能找到每个元素,但它可以工作: $("input, select, button, textarea").attr("disabled", true); 这取

我想一个简单的方法来设置enteir页面禁用(链接,按钮等…所有禁用),然后我需要能够重新启用页面中的所有


有一种轻松的方式吗?

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

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

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

它的工作原理如下:

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

$("input, select, button, textarea").attr("disabled", true);
这取决于页面的大小,以了解这是否是一种好方法,选择器可能会根据内容而改变。反转属性设置以再次启用所有功能

编辑:

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

$("a").click(function(e) {
   e.preventDefault();
});
你可以做:

$('*').attr('disabled', 'disabled').addClass('disabled')
所以现在我们禁用了所有输入,并将“disabled”类添加到所有内容中。现在我们只想禁用链接,我认为这应该可以:

$('body').on('click', '.disabled', function(e) { e.preventDefault(); });
要简单地重新启用一切:

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

确保你在上面设置了一个高的z指数,这样它就可以覆盖everything@PitaJ是的,它是在答案中设置的,但不是在演示中设置的。是否可以将其解释为一个全局函数,该函数接受我刚刚实现的所有ajax请求?如果我理解正确,您可以使用
ajaxStart
ajaxStop
事件。只需在
ajaxStart
上添加
show()
,在
ajaxStop
上添加
hide
,您就会得到很好的结果:)
如果您事先绑定了处理程序,那么禁用器将不起作用。要禁用输入元素,最好使用
prop(“disabled”,true)
。锚定标记
单击
事件与@Porco answer中的问题相同。
$('body').on('click', '.disabled', function(e) { e.preventDefault(); });
$('*').attr('disabled', '').removeClass('disabled')