変数から代入キーワードを削除すると、 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);
screenWidth関数を呼び出すものは何もないので、sWidthは決して設定されません。別のコードがありますか? –
+1と@ PeterHaightのコメント。また、Brandonは、[厳密モード](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode)ではない場合にのみ動作することを覚えておいてくださいを考慮する)。 –
申し訳ありません私はonresize = "screenWidth()"をbodyに置くことと、同じ関数を使ってonloadすることを忘れてしまいました。 –