前提・実現したいこと
画面サイズ1162以上の時のみイベントを発生させ、
リサイズ時(1162以下のサイズ)はイベントが発生しないようにしたい。
else を使わず実装出来るのであれば、どう記述すれば良いかご教示お願いします。
発生している問題・エラーメッセージ
下のjavaScriptの記述で動作とHTMLの記述には問題ないのですが、
elseの後に1162以上の時に発生するイベントを消すための記述をしているため
リサイズ及びリロード時に不要なイベントが発生してしまってます。
該当のソースコード
HTML
1<nav> 2<ul> 3<li><a href="#">hoge1</a></li> 4<li><a href="#">hoge2</a> 5<ul> 6<li><a href="#">fuga1</a></li> 7<li><a href="#">fuga2</a></li> 8<li><a href="#">fuga3</a></li> 9</ul> 10</li> 11<li><a href="#">hoge3</a> 12</ul> 13</nav>
JavaScript
1var timer = false; 2$(window).on('load resize', function(){ 3 if (timer !== false) { 4 clearTimeout(timer); 5 } 6 timer = setTimeout(function() { 7 if ($(window).width() >= 1162) { // If the window size is 1162 px or more 8 9$('nav ul').addclass('pc-nav'); 10 11$('nav ul li').children(`ul`).addclass('pc-subnav'); 12 13} else { 14 15$('nav ul').removeclass('pc-nav'); 16 17$('nav ul li').children('ul') 18 .removeclass('pc-subnav'); 19 20} 21 22 }, 0); 23});
試したこと
else 以下の記述をすべて削除したところ、リロード時は不要なイベントは発生せず意図したように動作したのですが
リサイズ時(1662以下のサイズ)に1162以上の時のみ発生させているイベントが発生したままになってしまいます。
(1162以下のサイズから1162以上にリサイズした時は、1162以上の時のみ発生させたいイベントがちゃんと発生します)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/04/27 15:36 編集
退会済みユーザー
2018/04/24 15:05