【问题标题】:JQuery Dialog Box auto scrolling to bottomJQuery 对话框自动滚动到底部
【发布时间】:2013-09-26 20:43:45
【问题描述】:

我有一个对话框“弹出”框,用于加载图片和信息,每当我启动该框时,页面会自动一直滚动到底部,并且在加载所有信息之前不会让我向上滚动。我不知道它为什么这样做。有什么想法吗?

$( "#dialog-view" ).dialog({
        resizable: false,
        width:'auto',
        fluid: true,
        modal: true,
        autoOpen: false,

        buttons: 
            {
    "Done": function() 
    {
      $("#dialog-view").dialog("close");
    }
  }
});  

【问题讨论】:

  • Have a look at this 看看有什么帮助...?
  • 你看过 preventDefault 吗?我认为这可能会阻止屏幕滚动。
  • 你如何添加它?我不擅长 jQuery 编码。

标签: jquery jquery-ui jquery-ui-dialog


【解决方案1】:

我遇到了类似的问题,这让我发疯了!我正在寻找一个带有# 的锚点,并且还在寻找一个强制它滚动到窗口底部的 javascript 操作。

事实证明,我正在加载的 AJAX 代码在底部有一个锚点(指向我网站的链接)。 Web 浏览器将代码渲染到页面上的唯一锚点。

为了消除这种情况,我在锚点上添加了一个负的 tabindex:

<a href="http://www.keppiehed.com" tabindex="-1">Keppiehed.com</a>

根据How to ignore HTML element from tabindex? 的第一个答案,W3C HTML5 规范支持负 tabindex 值。

我知道这篇文章有点老了,但我希望它能帮助你和其他人解决这个难以诊断的问题!

【讨论】:

  • @FahadIshaque,我很高兴它对你有用!这就是为什么我如此多地求助于 StackOverflow,并在我花一些时间研究它们时添加甚至是老问题的答案。
  • 看到这个答案后,我脑子里突然闪了一下,发现我加载的内容中还有一个链接导致滚动到底部。感谢您的洞察力!设置 tabindex 为我解决了这个问题。
【解决方案2】:

您的对话框可能定位错误,请使用 API 的 Position 或对我有用的解决方案来设置与顶部的距离,如下所示:

$("#dialog").dialog({ position: [($(window).width() / 2) - (dialogWidth / 2), 150] });
$("#dialog").dialog("open");

【讨论】:

    【解决方案3】:

    如果您不想为所有 a 标签添加 tabindex 属性,请根据上面的@Sablefoste 回答

    $('#my-dialog-id').find('a').attr('tabindex',-1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      • 1970-01-01
      相关资源
      最近更新 更多