jquery - 当 jQuery UI 模式对话框打开时禁用浏览器滚动

标签 jquery jquery-ui

当 jQuery UI 模式对话框打开时,是否可以禁用浏览器中的滚动(仅适用于浏览器的滚动条)。

注意:我确实希望在对话框内启用滚动

最佳答案

$(formObject).dialog({
 create: function(event, ui) {
  $("body").css({ overflow: 'hidden' })
 },
 beforeClose: function(event, ui) {
  $("body").css({ overflow: 'inherit' })
 }
});

或者正如我在下面的评论中提到的:

var dialogActiveClassName="dialog-active";
var dialogContainerSelector="body";

$(formObject).dialog({
 create: function(event, ui) {
   $(dialogContainerSelector).addClass(dialogActiveClassName);
 },
 beforeClose: function(event, ui) {
   $(dialogContainerSelector).removeClass(dialogActiveClassName);
 }
});

但实际上说实话,您应该确保创建一个对话框将一个事件冒泡到您的窗口对象,您将在其中监视所述事件,大致如下伪:

var dialogActiveClassName="dialog-active";
var dialogContainerSelector="body";
$(window).on("event:dialog-opened", function(){
    $(dialogContainerSelector).addClass(dialogActiveClassName);
});
$(window).on("event:dialog-closed", function(){
    $(dialogContainerSelector).removeClass(dialogActiveClassName);
});

关于jquery - 当 jQuery UI 模式对话框打开时禁用浏览器滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4887332/

相关文章:

带有页眉/页脚的 jQuery 风格自动完成

javascript - 使 var 值在按钮单击中可用

javascript - MySql SELECT 多个根据表单输入并发布

php - 如何在不使用iframe的情况下在我们的网站中显示其他网站的内容?

javascript - 如何通过 ulr load 删除 jQuery UI 对话框上的内容?

带有斜面的 jQuery 范围 slider ?

css - 使用 jQuery 自动完成 ui 时防止输入文本重置为默认宽度

javascript - 带有单选按钮的 JSON 到 Html 表

javascript - 我想在 jquery 的帮助下在 ul 的标签中打印 ul 宽度

javascript - 为无序项目分配编号