有人告诉我,如果从变量中删除赋值关键字: sWidth = window.outerWidth;
该变量应该是全局的,即使它在函数中也是如此。也许你们可以帮助我。 这是我的代码:
$(".menu-icon").click(function () {
$('.navi').toggleClass('navtogg');
});
var maincol = document.getElementById('maincol');
function screenWidth() {
sWidth = window.outerWidth;
maincol.textContent = sWidth;
console.log(sWidth);
}
console.log(sWidth);
var navListItems = document.querySelector("#liparent");
if(sWidth <= 850) {
$('.navi li').removeClass('hideul');
}
if(sWidth > 850) {
$('.navi li').addClass('hideul');
}
function liDropdown(e) {
if (sWidth <= 850) {
var subUl;
subUl = e.target.childNodes[2];
console.log(subUl);
if (subUl.getAttribute('id') === 'togghide') {
subUl.removeAttribute('id');
} else {
subUl.setAttribute('id', 'togghide');
}
}
}
navListItems.addEventListener('click', liDropdown, false);
答案 0 :(得分:1)
永远不会设置全局变量。调用该函数将设置它。
function screenWidth() {
sWidth = window.outerWidth;
maincol.textContent = sWidth;
console.log(sWidth);
}
console.log(sWidth);//undefined
screenWidth();
console.log(sWidth);//a number