2017-11-17 13 views
0

jqueryのサイズ変更ウィンドウのクリックイベントが何回も追加作業を停止すると、私は幅やオリエンテーションイベントのクリックで イベントリスナー動作を停止変更したときに、ここでjqueryのサイズ変更ウィンドウのクリックイベントが何度も追加され、

onResize = function() { 
     if($(window).width() < 768) { 
      $('.menu-item-has-children').on('click', function() { 
       $(this).find('.sub-menu').toggle(); 
      }) 
     } else { 
      $('.menu-item-has-children').off('click'); 
     } 
    } 

    var delay = (function() { 
     var timer = 0; 
     return function(callback, ms){ 
      clearTimeout(timer); 
      timer = setTimeout(callback, ms); 
     } 
    })(); 

    $(document).ready(onResize); 

    $(window).resize(function() { 
     delay(function(){ 
      onResize(); 
     },1000) 
    }); 

仕事をやめます私は問題を理解しようとしています http://prntscr.com/hbuazo

+0

多くなり、それが動作しますが、画面幅の変更後クリックイベントは動作を停止しますか? 768より小さくなっていますか? –

+0

はい、正しく理解しています –

答えて

0
I went the other way and decided this question like this: 


    $(window).resize(function() { 

     if($(window).width() > 768){ 
      $('.menu-item-has-children').removeClass('menu-item-touch'); 
     } 
     if($(window).width() <= 768){ 
      $('.menu-item-has-children').addClass('menu-item-touch'); 
     } 
    }); 

    if($(window).width() > 768){ 
     $('.menu-item-has-children').removeClass('menu-item-touch'); 
    } else { 
     $('.menu-item-has-children').addClass('menu-item-touch'); 
    } 

    $(document).on('click', '.menu-item-touch', function() { 
     $(this).find('.sub-menu').toggle(); 
    }); 
関連する問題