我有一个相当简单的导航菜单,打开并关闭点击。菜单行为仅在浏览器视口低于特定大小时才起作用。jquery点击事件并不总是在浏览器调整大小后触发
这一切在90%的时间内都很有效。剩下的10%的时间(当我向客户展示它时,natch)点击事件根本不会触发。据我所知,这个问题只发生在浏览器被重新调整了几次之后,但是当窗口被调整大小时它通常会正常工作,所以很难找到它发生的原因。
代码:
var smallViewport = false;
$(document).ready(function(){
if($(window).width() < 520) {
smallViewport = true;
}
if(smallViewport == true) {
$('nav.main').click(function(){
console.log(' + clicky clicky');
if($(this).find('.level-1').hasClass('open') == true) {
$(this).find('.level-1').slideUp('fast').removeClass('open');
} else {
$(this).find('.level-1').slideDown('fast', function(){ $(this).addClass('open'); });
}
})
}
});
$(window).resize(function() {
if($(window).width() < 520) {
smallViewport = true;
} else {
smallViewport = false;
}
console.log(smallViewport);
if(smallViewport == true) {
$('.level-1').removeClass('open').css('display','none');
} else {
$('.level-1').css('display','block');
}
});
当问题选择表现出来,在执行console.log(smallViewport)大小调整功能输出“真”时,它应该是真的,单击事件只是拒绝与火闪它。
有没有人遇到过类似的问题?我错过了任何明显的解决方案?
您使用哪个浏览器进行测试?什么是你的jQuery版本...? – bodi0