将实时 jQuery 事件应用于 iframe 内容
applying live jquery events to iframe content
我正在尝试将实时点击事件应用于动态添加到可编辑的 iframe 的元素。
$('#iframeView').contents().find('*').on("click", function(e) {
e.stopPropagation();
e.preventDefault();
selectItemElement($(this));
});
这可以将事件应用于 iframe 中的元素,但是如果我向 iframe 添加新元素,它们将不再获得单击事件。因此,它不应用实时事件。
知道如何让它工作吗?
您需要委托事件,这意味着将事件添加到静态容器。iFrame document
将成为一个很好的静态容器,这就是使用.contents()
会给你的。
如果事件的目标元素与您的选择器(.on()
的第二个参数)匹配,则将调用该函数。
$('#iframeView').contents().on("click", '*', function (e) {
e.stopPropagation();
e.preventDefault();
selectItemElement($(this));
});
JSFiddle
从文档中您可以使用:
$( selector ).live( events, data, handler ); // jQuery 1.3+
$( document ).delegate( selector, events, data, handler ); // jQuery 1.4.3+
$( document ).on( events, selector, data, handler ); // jQuery 1.7+
例如:
$('#iframeView').contents().on("click",'*',function (e) {
//Your code here
});
相关文章:
- 获取iframe内容的宽度-高度
- 使用Javascript(或jQuery)加载iframe内容
- 动态(重新)创建iframe内容不会重置Chrome中的JS对象
- 将 iframe 内容传输到新的空 iframe
- 如何运行在加载时操作 iframe 内容的代码
- 如何根据 iframe 的大小调整 iframe 内容的大小
- 打印iframe内容
- Internet Explorer:可以't访问IFrame内容,除非状态代码为200
- 如何创建iframe内容的书签
- 从父窗口上的iFrame内容中关闭iFrame
- iFrame内容在盲效后丢失
- 如何在angular js中使用滚动条打印iframe内容
- iframe内容可编辑,位于jqueryUI可排序列表项中
- 当Iframe内容从按钮更改时,动态更改标头名称
- iframe内容加载后触发js函数
- 如何按时间间隔重新加载Iframe内容,使其不会闪烁
- Javascript 打印多个网页 iFrame 内容(全部打印按钮)
- 无法获取 iframe 内容
- 根据链接显示 iframe 内容
- 单击按钮时重新加载 iframe 内容(本地 HTML)