使用 jquery 禁用所有具有模式功能的页面元素

2022-01-17 00:00:00 modal-dialog jquery javascript html css

我希望在某个操作时禁用所有页面元素.就像 JQuery UI 中的 modal 功能一样.

I wish to disable all page elements upon an action. Like the modal feature that is in the JQuery UI.

就像 ajax 动作一样.我希望显示通知,同时启用模态功能.并且请求后,需要重新启用页面元素回来.

Like on an ajax action.. I wish to show a notification and at the same time to enable the modal feature. And after the request, need to re-enable the page elements back.

在核心 jquery 中是否有任何可用的选项或任何插件?

Is there any option available in core jquery for that or any plugins?

推荐答案

页面元素没有被禁用 - 这样做会很乏味 - 而是在顶部覆盖了一个半透明的 div所有其他页面元素.为此,您可能会执行类似

The page elements are not disabled - doing that would be quite tedious - but rather, a semi-transparent div is overlayed on top of all other page elements. To do this, you would probably do something like

// Declare this variable in the same scope as the ajax complete function
overlay = $('<div></div>').prependTo('body').attr('id', 'overlay');

还有 CSS:

#overlay {
  position: fixed;
  height: 100%;
  width: 100%;
  z-index: 1000000;
  background: url('link/to/semitransparent.png');
}

然后,一旦操作完成,您只需像这样删除它:

Then once the action is complete, you simply remove it like this:

overlay.remove();

如果这是您唯一需要的,则无需包含 jQuery UI.

No need to include jQuery UI if this is the only thing you need it for.

相关文章