【发布时间】:2012-05-30 13:16:38
【问题描述】:
我的问题:我需要从 iframe 外部创建可拖动的小部件(例如这里是 jslider)。 Container 和 iframe 内容都来自同一来源。 问题是 jQuery 在错误的文档对象上附加了 mousemove 事件。
http://jsfiddle.net/techunter/4pnxh
尝试移动滑块,它只能在鼠标触发 iframe 之外的事件时移动。 请帮忙,我卡在这里了
编辑: JQuery 侦听滑块句柄上的单击,并在单击事件时在 mousemove 上创建一个新的侦听器,但在窗口内,而不是在框架内。我正在考虑更改 jquery 库并添加一个上下文(默认情况下是 window.document),但它的时间很昂贵。
【问题讨论】:
-
如果两个文件都是从同一个源加载的,你可以在iframe源中添加一个方法,可以被父页面调用并执行所需的代码
-
我无法编辑内容,因为它是由另一个应用程序生成的。
-
该应用是否在另一个域中?因为您将陷入en.wikipedia.org/wiki/Same_origin_policy,如下所述:stackoverflow.com/questions/364952/…
-
你试过这个选项吗 -
$(document.getElementById("frame-id").contentWindow.document.getElementById("element-id")).draggable({iframeFix: true}); -
或
$("frame-id").contents().find("element-id").draggable({iframeFix: true});
标签: jquery events iframe jquery-ui-draggable jquery-slider