【问题标题】:jQuery UI dialog bug when dialog is resized then closed pushing X on IE9jQuery UI 对话框错误,当对话框调整大小然后关闭在 IE9 上推送 X 时
【发布时间】:2013-05-02 21:13:45
【问题描述】:

我正在创建一个新的 jQuery UI 对话框,然后将其调整到更高的高度。 当我单击关闭按钮 (X) 时,对话框会向上移动到屏幕顶部,而不是自行关闭。

这只发生在 Internet Explorer 中(在我的例子中是 IE9)。

有什么解决方法吗?

这是重现此错误的 js fiddle: http://jsfiddle.net/5WJBR/1/

$(document).ready(function(){
  $('#dialog').dialog();
  $('#dialog').dialog('option','height', '1000');
});

我设法通过使用 css overflow-y:hidden 删除垂直滚动条使其工作,但在我的用例中,我肯定需要激活垂直滚动。

感谢您的帮助, 吉米

【问题讨论】:

  • 抱歉,我们不小心删除了您的 UI 票证。但正如我在票证中提到的,您的测试用例是针对旧版本的 jQuery UI (1.9.2) 制作的。这在 master 上运行良好:jsfiddle.net/Q64GR.
  • 感谢 TJ 的回答。我实际上发布了 4 次 UI 票,与无法通过的验证码作斗争。问题是我已经尝试将应用程序升级到 jQuery UI master,但是这个错误得到了解决,但是我在其他插件之间得到了其他不兼容(例如对话框扩展,...)。由于该应用程序已经在生产中,我现在无法进行升级,快速修复会更好。关于我应该在 jquery-ui-1.9.1.js 中从哪里开始修复此错误的任何提示?谢谢
  • 抱歉,我不确定您可以在这里做什么。对话框小部件在 1.10 中进行了重写,因此很难说什么会解决您的问题。最好的办法是查看 1.10 的更新日志,看看是否能找出解决问题的方法:jqueryui.com/changelog/1.10.0
  • 显然最好的办法是升级到 1.10+,但我意识到这可能并不容易。

标签: jquery-ui jquery-ui-dialog


【解决方案1】:

好的,对于那些感兴趣的人来说,这里是修复(仅适用于 jQuery UI 版本 1.9.1 及以下):

var that = this;
$('.ui-dialog-titlebar-close').on('mousedown', function({
    that.dialog.dialog('destroy');
});

仅供参考,在“点击”事件上绑定标题栏将不起作用!!鼠标按下。

谢谢, -J

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多