javascript-具有iFrame的外部单击页面上的关闭菜单
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-具有iFrame的外部单击页面上的关闭菜单,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2518字,纯文字阅读大概需要4分钟。
内容图文
![javascript-具有iFrame的外部单击页面上的关闭菜单](/upload/InfoBanner/zyjiaocheng/679/50ccd03eb7944903977981ab71df19e4.jpg)
我正在尝试使用概述的技巧on this answer关闭我设计的页面上的导航菜单.但是,页面上的大部分空间都由iframe占用,该iframe加载与包含iframe的页面存储在同一服务器上的文章.
如果单击父页面上的任何元素,则菜单将关闭.但是,单击iframe中的任何空间都不会关闭菜单.
我假设这是因为父页面无法捕获iframe内部发生的事件.就像我说过的那样,两个页面都存储在同一台服务器上,所以当用户在iframe中单击时如何捕获单击以关闭菜单?
HTML:
<div id="menucontainer">
<nav id="mobilemenu">
<ul>
<li><span class="menutrigger">☰ Menu</span></li>
</ul>
</nav>
<nav id="fullmenu">
<ul>
<li><a href="page1.html" target="content">Menu Item 1</a></li>
<li><a href="page2.html" target="content">Menu Item 2</a></li>
<li><a href="page3.html" target="content">Menu Item 3</a></li>
<li><a href="page4.html" target="content">Menu Item 4</a></li>
</ul>
</nav>
</div>
<div id="frame">
<iframe name="content" id="content" src="intro.html"></iframe>
</div>
jQuery的:
$(document).ready(function() {
$("a[target='content']").click(function() {
if ($("#mobilemenu").css("display") == "block" ){
$('#fullmenu').hide();
}
});
$('html').click(function() {
$('#fullmenu').hide();
});
$('#menucontainer').click(function(event){
event.stopPropagation();
});
$('.menutrigger').click(function() {
$('#fullmenu').toggle();
});
});
CSS :(添加是因为它发生在我身上,可能会影响事物)
html, body { height: 100%; width: 100%; }
nav, #frame { position: absolute; right: 0; left: 0; padding: 0; margin: 0; width: 100%; }
#content { height: 100%; width: 100%; }
#frame { top: 38px; bottom: 14px; }
nav { width: 100%; z-index: 100; }
#fullmenu { display: none; position: absolute; top: 38px; width: 100%; }
#mobilemenu { display: block; height: 38px; top: 0; background: #333; }
.menutrigger { font-size: 20px; font-weight: bold; padding: 1px 8px; color: #FFF; cursor: pointer; }
#frame { top: 38px; bottom: 14px; }
nav ul { position: relative; width: 100%; background: #333; list-style: none; display: inline-block; padding: 0; }
nav ul:after { clear: both; }
nav ul li { height: 29px; float: none; min-width: 110px; font-size: 14px; padding: 4px 4px; font-family: 'Roboto Condensed', sans-serif; }
nav ul li a { display: block; padding: 5px; color: #FFF; text-decoration: none; }
nav ul li:hover { background: #666; display: inline-block; height: 29px; }
nav ul li:hover a { color: #FFF; }
解决方法:
代替
$('html').click(function() {
$('#fullmenu').hide();
});
采用
$('html').click(function() {
$('#fullmenu').hide();
});
//get iframe contents and bind click on them.
$('#content').contents().click(function(){
$('#fullmenu').hide();
});
内容总结
以上是互联网集市为您收集整理的javascript-具有iFrame的外部单击页面上的关闭菜单全部内容,希望文章能够帮你解决javascript-具有iFrame的外部单击页面上的关闭菜单所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。