Изменение размера div при щелчке по размеру окна (работает) и изменение размера при втором щелчке (не работает)

У меня есть код, который позволяет мне изменять размер W&H контейнера, чтобы он соответствовал окну W&H при нажатии, и он отлично работает, также я хочу, чтобы он менял размеры при втором нажатии, но пока это не работает для меня...

Вот что я получил с половиной работающего jsFiddle:

$('.more').click(function(){
    var isFullscreen = false;
    var d = {};
    var speed = 900; 
    if(!isFullscreen){ // MAXIMIZATION
        d.width = $(window).width();;
        d.height = $(window).height();; 
        isFullscreen = true;
    }
    else{ // MINIMIZATION            
        d.width = "50px";
        d.height =  "50px";            
        isFullscreen = false;
    }

    $(this).animate(d,speed)
    })

1 ответ

Решение

Хмммм... ваша функция щелчка всегда начинается с инициализации isFullscreen в false (никогда не принимает ветвь else). Вы можете сделать isFullscreen глобальной переменной; переместите его объявление и инициализацию за пределы функции. Если предполагается, что это переменная "статического" типа, вам нужно инициализировать ее несколько иначе (начиная с присвоения этой функции щелчка имени), возможно:

 $('.more').click(function f(){
   f.isFullscreen = (f.isFullscreen===false)?true:false;

При первом вызове функции f.isFullscreen не определен (не идентичен false), поэтому устанавливается в false. При последующих вызовах его значение меняется, поэтому вам не нужны отдельные строки, которые устанавливают его значение в ваших блоках кода MAXIMIZATION и MINIMIZATION.

Другие вопросы по тегам