【发布时间】:2013-12-12 06:58:54
【问题描述】:
我正在尝试将模糊事件绑定到页面中的所有“输入”元素。它有多个输入元素,甚至在“iframe”内也有一些输入元素。
我能够绑定 iframe 外部但不在内部的模糊事件。
这是我尝试过的一些代码:
$('body iframe').contents().find('body').delegate('input','blur',function(e){
alert('blur');
});
$('body,iframe').children().find('input').on('blur',function(e){
alert('blur');
});
HTML 结构
<html>
<body>
<div id = abc> <!--start of abc div -->
<form>
<table>
<tr>
<input name="hello"/> <!-- able to bind event to this input -->
</tr>
</table>
</form>
</div> // end of abc div
<div id="pqr"> // start of pqr div
<iframe name="e1menuAppIframe"> <!-- iframe element (Does have more properties) -->
<html>
<body>
<div id="abc">
<form>
<table>
<tr>
<input name="hello"/> <!--not able to bind event to this input -->
</tr>
</table>
</form>
<!-- more forms -->
</body>
</html>
</iframe>
</div> <!-- end of pqr div -->
</body>
</html>
两者都不适用于 iframe 内的元素。
是否有一个通用的解决方案可以绑定到页面内的所有输入元素,尽管有 iframe。
还有一些将动态 iframe 元素加载到页面中的请求,on 和委托函数不会将模糊事件绑定到新添加的 iframe。
【问题讨论】:
-
如果您在浏览器上检查元素,您将在框架内看到另一个 html 和 body 标签。所以我认为这是问题所在!
-
Iframe 的内容是否来自其他域?换句话说,您的 iframe 是否打开了外部 URL?
-
不,内容仅来自同一域。当我在 firebug 中打开 iframe 时,它就像一个从 .......... 开始的新页面 DOM
-
你能给我们看看这里的代码吗?我也想查看 iframe 的标记。也许你在那里遗漏了一些东西。
-
请找到更新后的 HTML 代码结构。
标签: javascript jquery jquery-ui iframe jquery-plugins