jQuery点击事件不工作时,全屏iframe在后台
jQuery click event does not work when fullscreen iframe in the background?
当背景中有全屏iframe时,jQuery的click事件不会触发:
JS:
$( document ).ready(function() {
$(document).click(function(){
if ($(this).find('.overlay').is(':visible')) {
$('.overlay').hide();
} else {
$('.overlay').show();
}
});
});
HTML: <body>
<div class="overlay">Overlay</div>
<iframe src="iframe.html" name="frame" style="position:fixed; top:0; left:0; right:0; bottom:0; width:100%; height:100%"></iframe>
</body>
CSS: body {
margin: 0;
}
.overlay {
width:200px;
height:200px;
background-color: green;
position:fixed;
top:0;
left:0;
z-index: 10;
}
我想隐藏/切换绿色框时,然后点击发生外框。
我该如何解决这个问题?
要访问iframe,可以使用.contents()
:
$(document).ready(function() {
$('[name="frame"]').on('load', function() {
$(this).contents().click(function() {
if ($('.overlay').is(':visible')) $('.overlay').hide();
else $('.overlay').show();
});
});
});
https://api.jquery.com/contents/.contents()方法也可用于获取iframe的内容文档,如果iframe与主页在同一域。
如果内容在另一个域中,唯一的选择可能是在它上面放一个元素。
编辑-调整代码,在应用事件处理程序之前等待iframe加载是很重要的…
如果事件是关于那个div (overlay),你应该用jquery在overlay类中添加listener,试试下面的例子并告诉结果
$(".overlay").click(function (){
$(this).slideToggle();
}):
或
$(".overlay").click(function (){
if($(this).hassClass('hide')){
return $(this).removeClass('hide');
}
return $(this).addClass('hide');
});
css .hide{
display:none;
}
相关文章:
- 退出全屏不起作用
- 不带jquery的全屏分页
- Firefox:从网页强制全屏模式
- 如何从超大全屏幻灯片中获取100px
- 为什么文本区域在全屏模式下不可编辑
- 从 iframe 外部启动全屏
- 没有全屏的iPhone 上的 YouTube Iframe API
- 一个可触摸的jQuery灯箱 - 从iframe打开到全屏
- 如何使用外部容器为iframe设置全屏
- Iframe 进入全屏模式
- 如何在 iframe 中使用全屏模式
- 嵌入式Youtube iFrame全屏按钮不工作
- 无法从iframe切换到全屏模式
- 使用jquery在dom中移动嵌入的youtube iframe会导致全屏无法在Windows8 IE10中工作
- jQuery点击事件不工作时,全屏iframe在后台
- 如何设置flowplayer全屏选项为false(不是iframe)
- 在youtube上启用全屏iframe视频
- 添加文本覆盖到我的Vimeo全屏背景-iframe-
- 使youtube视频全屏使用iframe和javascript API
- 如何使嵌入式网站的全屏只占用iframe