我遇到一个问题,就是在一个iframe(与引用者相同的域)的按钮上进行点击事件,并使其关闭(在这种情况下)父窗口中的2个div。
主页的示例html:
<div class="wrapper">
<iframe src="foo"></iframe>
</div>
<div class="bg"></div>
iframe的示例html:
<div class="btn_wrapper">
<a href="http://www.foobar.com" class="yes">Yes</a>
<a class="no">No</a>
</div>
JS:
// redirect
$('body').on('click', '.btn_wrapper .yes', function() {
window.top.location = 'http://www.foobar.com';
});
// hide iframe popup wrapper and bg
$('body').on('click', '.btn_wrapper .no', function() {
$('.wrapper').fadeOut(250, function() {
$('.bg').fadeOut(150);
});
});
$('body').on('click'...
函数确实成功运行,因为单击yes按钮会重定向,而在我的完整代码中,单击no以设置cookie,它会执行此操作。
出于某种原因,虽然它不会隐藏包含iframe和背景叠加层的.wrapper
。我怎样才能做到这一点?
我并不是必须使用iframe来构建我的内容,但为了保持一致性并与已经存在的函数集成,我真的想继续使用iframe。
答案 0 :(得分:4)
尝试:
$('body').on('click', '.btn_wrapper .no', function() {
$('.wrapper', window.parent.document).fadeOut(250, function() {
$('.bg', window.parent.document).fadeOut(150);
});
});