gpt4 book ai didi

jquery iframeFix 实现

转载 作者:行者123 更新时间:2023-12-01 05:05:17 24 4
gpt4 key购买 nike

我有一个包含 iframe 的 jquery-ui 模式弹出窗口。它的名称是这样的:

    $("#modalDiv").dialog({
modal: true,
autoOpen: false,
height: '400',
width: '400',
position: ['150', '200'],
draggable: true,
resizable: false,
title: 'Loading...'
});

$('#modalIFrame').attr('src', url);
$('#modalDiv').dialog('open');

问题是拖动模态框非常粗略。我知道这基本上是由于 iframe 拦截了拖动事件。我正在尝试实现“iframeFix”解决方案,但它似乎不起作用。我目前从弹出窗口中这样调用它:

    window.parent.$("#modalDiv").draggable("option", "iframeFix", true);

我还通过这两种方式从父页面尝试过:

    $("#modalDiv").draggable("option", "iframeFix", true);
$("#modalIFrame").draggable("option", "iframeFix", true);

运气不好。

最佳答案

我不确定 iframeFix 是如何工作的,但这是我目前使用的解决方案。我添加了bug report在 jQuery UI 网站上,他们似乎正在为 jQuery UI 的下一个版本进行此工作。

我注意到您的对话框指定它不可调整大小,因此以下内容应该可以解决您的问题。如果您需要可调整大小的对话框,则需要将 dialogdragstart 替换为 dialogdragstartdialogresizestart,同样将 dialogdragstop 替换为 dialogdragstopdialogresizestop .

$("#modalDiv")
.dialog({
modal : true,
autoOpen : false,
height : 400,
width : 400,
position : [ 150, 200 ],
draggable: true,
resizable: false,
title : 'Loading...'
})
.bind('dialogdragstart', function() {
var overlay = $(this).find('.hidden-dialog-overlay');
if (!overlay.length) {
overlay = $('<div class="hidden-dialog-overlay" style="position:absolute;top:0;left:0;right:0;bottom:0;z-order:100000;"></div>');
overlay.appendTo(this);
}
else
overlay.show();
})
.bind('dialogdragstop', function() {
$(this).find('.hidden-dialog-overlay').hide();
});

关于jquery iframeFix 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6525164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com