全局函数变量未定义

时间:2016-05-28 23:56:14

标签: javascript variables global local

有人告诉我,如果从变量中删除赋值关键字: 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);

1 个答案:

答案 0 :(得分:1)

永远不会设置全局变量。调用该函数将设置它。

function screenWidth() {
    sWidth = window.outerWidth;
    maincol.textContent = sWidth;
    console.log(sWidth);
}
console.log(sWidth);//undefined
screenWidth();
console.log(sWidth);//a number