2017-11-17 1 views
0

jquery Resize Fenster Click-Ereignis oft arbeiten hinzugefügt und endetjquery Resize Fenster Click-Ereignis hinzugefügt oft und hört

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) 
    }); 

hier zu arbeiten, wenn ich die Breite oder Orientierungsveranstaltung Klick ändern nicht mehr funktioniert der Ereignis-Listener viel wird http://prntscr.com/hbuazo

+0

ich das Problem zu verstehen, ich versuche, es funktioniert, aber nach einer Änderung in der Bildschirmarbeits das Click-Ereignis stoppt Breite? Gehst du kleiner als 768? –

+0

ja, du hast es richtig verstanden –

Antwort

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(); 
    }); 
Verwandte Themen