我有一個相當簡單的導航菜單,打開並關閉點擊。菜單行爲僅在瀏覽器視口低於特定大小時才起作用。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