【发布时间】:2015-06-26 16:46:03
【问题描述】:
背景:尝试在单页网站上为移动设备构建全屏菜单。
问题:#handle div 需要点击 2 次才能执行操作。我尝试以不同的方式使用以下内容,但我似乎以某种方式错误地实现了它: 生/死, 绑定/解除绑定, 开关, 委托/取消委托。
我不明白我应该如何解决我的问题。抱歉,某些 div 上的 id-name 错误。
HTML
<div id="overlay">
<input type="checkbox" id="op"></input>
<div class="overlay overlay-hugeinc">
<label for="op"></label>
<div id="nav">
<ul>
<li class="homescroll" class="overlayli">Home</li>
<li class="servscroll" class="overlayli">Services</li>
<li class="workscroll" class="overlayli">Work</li>
<li class="aboutscroll" class="overlayli">About</li>
<li class="contactscroll" class="overlayli">Contact</li>
</ul>
</div>
</div>
</div>
jQuery 单击 li 时,用户会向下滚动页面并隐藏菜单: 如果用户现在想再次打开菜单,则需要单击 2 次才能执行操作。
<script>
$(document).ready(function () {
$('li').hover(
function () {
$('li', this).fadeIn();
},
function () {
$('li', this).fadeOut();
}
);
$(".aboutcroll").off().on('click', function() {
$('html, body').animate({
scrollTop: $("#aboutdummy").offset().top
}, 800);
$("#overlay").hide();
$("#handle").on('click');
});
});
</script>
单击#handle 时,将打开覆盖全屏菜单:
<script>
$(document).ready(function(){
$("#handle").off().on('click', function() {
$("#overlay").show();
});
});
</script>
【问题讨论】:
-
我发现很难确定你真正的问题是什么。也许您可以编辑问题以完成每次点击,然后显示您认为正在触发的代码以及您期望它做什么以及它实际上在做什么
-
每个
li都有多个类属性。这意味着浏览器会记住第一个或第二个类名,但不能记住两个类名。使用两个名称用空格分隔的一类,例如class="homescroll overlayli"。不确定这是否与这个特定问题有关。 -
刚刚改了这个。不解决问题。不过谢谢!
标签: javascript jquery html css