我创建了一个从页面外部滑入的菜单。问题是当您单击菜单中的项目并加载新页面时,新页面会在菜单关闭时加载。是否有办法告诉浏览器在新页面加载后保持菜单打开?
这是打开菜单的代码
<script>
$(document).ready(function(){
$("#closeIcon").hide()
$(".left").width('0%');
$(".right").width('100%');
});
$(document).ready(function(){
$("#menuIcon").click(function(){
$(".left").animate({width:'10%'}, "500");
$(".right").animate({width:'90%'}, "500");
$("#nav").animate({
left: '30%',
}, "500" );
$("#menuIcon").fadeOut(500)
$("#closeIcon").fadeIn(500)
});
});
$(document).ready(function(){
$("#closeIcon").click(function(){
$(".left").animate({width:'0%'}, "500");
$(".right").animate({width:'100%'}, "500");
$("#nav").animate({
left: '0',
}, "500" );
$("#menuIcon").fadeIn(500)
$("#closeIcon").fadeOut(500)
});
});
</script>
这是html:
<html>
<div id="menu" >
<div id="menuIcon">
<a href="javascript: void(0)">
<img src="images/menuIcon.png">
</a>
</div>
<div id="closeIcon">
<a href="javascript: void(0)">
<img src="images/closeIcon.png">
</a>
</div>
</div>
</html>
<div class="left">
<div id="nav">
<div id="accordion">
</div> <!--ends accordion-->
</div>
</div>
<div class="right">
<div id="content">
</div><!--ends content-->
</div><!--ends right-->
答案 0 :(得分:0)
离开页面时无法保留jQuery事件。 如果您离开页面,请在元素上添加class以打开菜单。
您可以在您的链接中传递参数,以了解您必须采取的行动
此外,您只能使用一个$(document).ready();
答案 1 :(得分:0)
我认为您应该在新页面中添加GET
参数,以便了解何时需要显示菜单。
查看此页面以了解有关如何使用jQuery获取URL参数的更多信息:Get escaped URL parameter
另外,我想你忘记在你的例子中添加一些HTML。那些元素是什么?
.left
.right
#nav
答案 2 :(得分:0)
为什么不使用AJAX加载页面并用新内容替换页面内容,而不是在窗口上加载新页面?
类似的东西:
<html>
<div id="menu" >
<div id="menuIcon">
<a href="javascript: void(0)">
<img src="images/menuIcon.png">
</a>
</div>
<div id="closeIcon">
<a href="javascript: void(0)">
<img src="images/closeIcon.png">
</a>
</div>
</div>
<div id="body">
<!--Body here-->
</div>
</html>
JS:
$("a").click(function(e){e.preventDefault();loadNew(this.href);});
function loadNew(href){
$.ajax({
url: href,
cache: false
}).done(function( html ) {
$( "#body" ).replaceWith( $(html).find("#body") );
});
}
这将使过渡看起来更加平稳。
答案 3 :(得分:0)
你应该只有一个$(document).ready()函数,因为它只会被调用一次。
尝试拆开你的代码并让你的$(文件).ready()调用这些部分,然后重新发布,如果你仍然遇到麻烦。
即
$(document).ready(function(){
closeIcon();
menuIcon();
});
function closeIcon(){
//dostuff
}
function menuIcon(){
//dostuff
}