LoginSignup
0
0

More than 5 years have passed since last update.

javscript の matchMediaをaddListnerで呼び出した際の挙動について

Posted at

javascript (with jQuery)で下記を書き、ページをロード後リサイズすると、
addClass('className') removeClass('className') は期待通り、サイズによってクラスの追加削除ができるのですが、
hover()については、ページロード時の挙動がリサイズ後も引き継がれます。

「リサイズがかかるごとに、if文を見に行っている」=「リサイズのごとに hoverの挙動もそのたび適応され直す」
のかと思ったのですが、overwriteなのですね。。。


  mqFunc = function(mql) {
    if (mql.matches) {
      $('body').addClass('className');

      $('header .item').hover(function() {
        $(this).css('width', '2em')
      }, function() {
        $(this).css('width', '')
      });

    } else {
      $('body').removeClass('className');
    }
  }


  const mql = window.matchMedia('(max-width: 720px)');
  mqFunc(mql);
  mql.addListener(mqFunc);

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0