Próbuję wystrzelić funkcję raz na zmianę rozmiaru. Problemem jest warunkowe stwierdzenia nie są wykonywane za każdym razem z jakiegoś powodu. Kod jest

var old_width= $(window).width(); 
$(window).on('resize.3col',function(e){ 
  clearTimeout(timer);
  timer=setTimeout(function(){
    var nw= $(window).width();
    if((nw <= old_width) && (nw <= '940') &&   (nw >= '915') ){
      appendList('resize.3col');
    }
    old_width= nw;
  } , 500);
});

Powodem, dla którego używasz Settimeout, ponieważ chcę uzyskać nową szerokość, jeśli nie używam go nowa szerokość jest taka sama jak stara szerokość, której nie chcę. Jeśli nie używam ustalania, warunki działają. Edytuj: warunkowe oświadczenia ogień czasami innym razem, których nie robią. Jak uczynić go bardziej gładko?

0
Aditya 4 grudzień 2013, 01:12

2 odpowiedzi

Najlepsza odpowiedź

Używałem tej samej zmiennej zegara do wywołania zdarzenia zmiany rozmiaru o różnych obszarach przestrzeni nazw "3Col", "4Col" i "5Col". Dodałem również, jeśli (timer) ClearTimeout (timer); który poprawił funkcjonalność. Dzięki :)

0
Aditya 4 grudzień 2013, 16:31

Wypróbuj ten kod i sprawdź, czy istnieje różnica:

var $win = $(window),
  oldWidth= $win.width(),
  winResized = function(){
    var newWidth= $win.width();

    if (
      newWidth <= oldWidth &&
      newWidth <= 940 &&
      newWidth >= 915
    ){
      appendList('resize.3col');
    }
    oldWidth = newWidth;
  },
  timer;

$win.on('resize.3col',function(e){
  clearTimeout(timer);
  timer = setTimeout(winResized, 500);
});
0
Eddie Monge Jr 3 grudzień 2013, 21:24