jQueryUI对话框滚动位置重置为另一个对话框的焦点

死神

问题:

使用多个实例化的标准jQueryUI对话框时,如下所示:

$("#dialog").dialog({});
$("#dialog2").dialog({});

如果有大量内容或已设置特定的高度导致滚动条,则在滚动条内部滚动之后,将焦点对准相反的对话框,滚动条的位置将在与之交互的第一个对话框上重置(或在所有其他对话框中3个或更多对话框)。

有关问题的演示:

http://jsfiddle.net/Drath/yGL22/

重现步骤:

  1. 在一个对话框中滚动。
  2. 单击相反的对话框。
  3. 滚动条的位置将在滚动的第一个对话框中重置。

额外:

寻找可能的解决方法,因为这似乎是一个错误。我无法使用任何选项/方法/事件组合来找到解决此问题的方法。这似乎发生在焦点事件之前,因此我无法找到使用该事件的解决方法。

死神

能够在搜索查询中使用“ _moveToTop”找到解决方案。在此可以找到有关此问题的官方错误票证:http : //bugs.jqueryui.com/ticket/9166

在即将发布的jQueryUI 1.11.0版中已修复此问题。如果您在jQueryUI 1.10.4或更低版本上运行此问题,则解决方法如下:

加载jQueryUI之后,通过加载以下代码来覆盖_moveToTop函数:

$.widget('ui.dialog', $.ui.dialog, { _moveToTop: function( event, silent ) {
    var $parent = this.uiDialog.parent();
    var $elementsOnSameLevel = $parent.children();

    var heighestZIndex = 0;
    $.each($elementsOnSameLevel, function(index, element) {
        var zIndexOfElement = $(element).css('z-index');
        if (zIndexOfElement) {
            var zIndexOfElementAsNumber = parseInt(zIndexOfElement) || 0;
            if (zIndexOfElementAsNumber > heighestZIndex) {
                heighestZIndex = zIndexOfElementAsNumber;
            }
        }
    });
    var currentZIndex = this.uiDialog.css('z-index');

    var moved;
    if (currentZIndex >= heighestZIndex) {
        moved = false;
    } else {
        this.uiDialog.css('z-index', heighestZIndex + 1);
        moved = true;
    }

    if ( moved && !silent ) {
        this._trigger( "focus", event );
    }

    return moved;
}});

信用将通过该票证分配给用户joern.zaefferer。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQueryUI对话框滚动位置在另一个对话框的焦点上重置

来自分类Dev

如何将对话框位置坐标复制到另一个对话框中?

来自分类Dev

关闭对话框并打开另一个对话框

来自分类Dev

Slack 用另一个对话框响应对话框提交

来自分类Dev

C#显示对话框在WinForms中的另一个对话框?

来自分类Dev

在另一个对话框上创建对话框

来自分类Dev

对话框窗体会记住上一个按钮的焦点。如何重置?

来自分类Dev

对话框窗体会记住上一个按钮的焦点。如何重置?

来自分类Dev

如何在Android 4.4.2中的另一个对话框活动上显示对话框活动?

来自分类Dev

在另一个模态JFace对话框顶部打开模态JFace对话框

来自分类Dev

在另一个模态JFace对话框顶部打开模态JFace对话框

来自分类Dev

jQuery在另一个模式对话框内打开一个模式对话框

来自分类Dev

jQuery在另一个模式对话框内打开一个模式对话框

来自分类Dev

关闭和重置一个模式对话框

来自分类Dev

在另一个项目中重用源后,编辑器中的表单对话框为空

来自分类Dev

如何从另一个自定义对话框跳到一个自定义对话框

来自分类Dev

如何从另一个对话框类访问窗口小部件类

来自分类Dev

从另一个对话框调用时,OpenFileDialog冻结

来自分类Dev

将选定的对话框项获取到另一个按钮方法

来自分类Dev

通过使用另一个类的对话框来重新加载mainActivity

来自分类Dev

如何从React中的另一个文件调用对话框

来自分类Dev

如何从另一个组件打开对话框?

来自分类Dev

从Angular中的另一个组件调用模态对话框的正确方法?

来自分类Dev

无法在另一个内部创建Qt对话框

来自分类Dev

Java SWT扩展了对话框的另一个类

来自分类Dev

将值传递给从另一个活动运行的对话框

来自分类Dev

保存复制/加载另一个文件的对话框

来自分类Dev

JSF重定向到另一个页面并打开对话框

来自分类Dev

如何从另一个对话框类访问窗口小部件类

Related 相关文章

  1. 1

    jQueryUI对话框滚动位置在另一个对话框的焦点上重置

  2. 2

    如何将对话框位置坐标复制到另一个对话框中?

  3. 3

    关闭对话框并打开另一个对话框

  4. 4

    Slack 用另一个对话框响应对话框提交

  5. 5

    C#显示对话框在WinForms中的另一个对话框?

  6. 6

    在另一个对话框上创建对话框

  7. 7

    对话框窗体会记住上一个按钮的焦点。如何重置?

  8. 8

    对话框窗体会记住上一个按钮的焦点。如何重置?

  9. 9

    如何在Android 4.4.2中的另一个对话框活动上显示对话框活动?

  10. 10

    在另一个模态JFace对话框顶部打开模态JFace对话框

  11. 11

    在另一个模态JFace对话框顶部打开模态JFace对话框

  12. 12

    jQuery在另一个模式对话框内打开一个模式对话框

  13. 13

    jQuery在另一个模式对话框内打开一个模式对话框

  14. 14

    关闭和重置一个模式对话框

  15. 15

    在另一个项目中重用源后,编辑器中的表单对话框为空

  16. 16

    如何从另一个自定义对话框跳到一个自定义对话框

  17. 17

    如何从另一个对话框类访问窗口小部件类

  18. 18

    从另一个对话框调用时,OpenFileDialog冻结

  19. 19

    将选定的对话框项获取到另一个按钮方法

  20. 20

    通过使用另一个类的对话框来重新加载mainActivity

  21. 21

    如何从React中的另一个文件调用对话框

  22. 22

    如何从另一个组件打开对话框?

  23. 23

    从Angular中的另一个组件调用模态对话框的正确方法?

  24. 24

    无法在另一个内部创建Qt对话框

  25. 25

    Java SWT扩展了对话框的另一个类

  26. 26

    将值传递给从另一个活动运行的对话框

  27. 27

    保存复制/加载另一个文件的对话框

  28. 28

    JSF重定向到另一个页面并打开对话框

  29. 29

    如何从另一个对话框类访问窗口小部件类

热门标签

归档