Ваше состояние назначается, а не проверяется.Используйте ==
для сравнения:
if(p5goback == true) { ... }
Поскольку p5goback
является логическим значением, вы можете полностью исключить часть == true
:
if(p5goback) { ... }
Поскольку вы всегда устанавливаетеp5goback
к обратному тому, что было, вы могли бы сойти с рук просто:
$('#p5-6').fadeToggle('slow');
p5goback = !p5goback;
Обратите внимание, что это может привести к неожиданному поведению, если p5goback
(или видимость #p5-6
)когда-либо изменялось чем-либо иначе , чем эта функция (т. е. если есть сценарий, в котором только #p5-6
видимость или значение логического значения p5goback
)
Чтобы быть уверенным в том, что состояние всегда согласовано между этими двумя переменными, вы можете написать что-то вроде этого, но от этого страдает читаемость, и вам может быть лучше, если вы просто используете условие:
$.fn[ p5goback ? 'fadeOut' : 'fadeIn' ].call($('#p5-6'), 'slow');
p5goback = !p5goback;
Приведенный выше код вызывает $.fn.fadeOut
или $.fn.fadeIn
, в зависимости от значения p5goback
, а затем устанавливает p5goback
на обратное логическое значение его текущего значения.