【发布时间】:2010-10-05 06:41:50
【问题描述】:
我正在尝试使用 JQuery 创建一个对话窗口。到目前为止,我正在取得进展,但遇到了一些与 iframe 相关的问题......我知道 iframe 通常不受欢迎,但它们是唯一能满足项目要求的东西。
无论如何,我可以成功实现可调整大小和可拖动的插件,但是如果用户快速拖动并将鼠标悬停在对话框内部 div 中包含的 iframe 上,我会遇到问题。有点难以解释,但下面的代码应该有助于显示正在发生的事情。
似乎一旦鼠标越过 iframe,iframe 就会窃取 mousedown 事件的焦点。我想知道有没有办法解决这个问题。
谢谢, 克里斯
<div id="container" style="border: solid 1px Black; padding: 10px 10px 10px 10px; height: 520px; width: 420px;">
<iframe id="if" src="http://google.com" style="width: 400px; height: 500px;"></iframe>
</div>
<script type="text/javascript" src="jquery-1.2.6.js"></script>
<script type="text/javascript" src="jquery.ui.all.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#container").draggable();
$("#container").resizable(
{
alsoResize: "#if"
}
).parent().draggable();
}
);
编辑:为了运行应用程序,需要下载代码中引用的 jquery 文件。不过,代码应该向后兼容以前的版本。
编辑:我稍微修改了代码以简化一些事情。
编辑:我找到了使用prototype-window 库解决此问题的替代方法。我宁愿使用 jQuery 而不是原型,因为许多基准测试要好得多,但由于我的时间紧迫,原型路线会做。如果有人有一些建议,我仍然有兴趣弄清楚这一点。再次感谢您的所有帮助。
编辑:如果我将 iframe 更改为 div,上面的代码可以完美运行。问题似乎只是涉及 iframe 时可拖动和可调整大小的扩展功能的方式。
【问题讨论】: