Я пытаюсь написать анимацию, чтобы при щелчке jQuery будет записывать положение объектов относительно окна браузера в переменной (projectPosition), затем перемещать ее где-то еще и установите его как «открыто». Если он снова щелкнут, он вернется в исходное положение, как указано в переменной, и отметьте его закрытым.Как остановить переменную от изменения ее значения
Проблема заключается в том, что я объявляю эту переменную в событии, но это означает, что она получает redeclared при повторном нажатии, переписывая значение его исходной позиции. Я попробовал объявить переменную в выражении if, чтобы она была установлена только при щелчке и закрытии проекта, но тогда это значение недоступно из else if.
Есть ли способ, чтобы jQuery сохранял значение, установленное с того момента, когда оно было помечено как закрытое? Вот код:
$(".projectContainer").click(function(){
var projectPosition = $(this).offset();;
var selProject = (this);
if (!projectOpen){
$(".projectContainer").not(this).fadeOut(200,"swing",function(){
$(selProject).animate({
left:'0px',
top:'80px',
width:'100vw'},600,"easeOutQuint");
});
projectOpen = true;
}
else if (projectOpen){
$(this).stop(true, true).animate({
left:'projectPosition.left',
top:'projectPosition.top',
width:'384px'},400,"swing",function(){
$(".projectContainer").not(this).fadeIn(200);
});
projectOpen = false;
}
});
ARGH, это одна из тех ситуаций, когда я клянусь, что я пытался этот вариант, и он не работает для непредвиденного Разум, но вот, я просто попробовал, и это сработало. Спасибо! – GtwoK