Есть следующий код: Код (Text): var $side = 'left'; $('#button-'+$side).click(function() { $('#content').animate({'margin-left': '50', 'left': '40'}, 500); } Нужно внутри animate заменить 'left' переменной $side, чтобы в неё потом можно было подставить 'left' или 'right' по желанию. Только это почему-то не получается сделать. В таком виде скрипт крэшится полностью: Код (Text): $('#content').animate({'margin-'+$side: '50', 'left': '40'}, 500); А в таком, просто не работает вторая часть анимации: Код (Text): $('#content').animate({'margin-left': '50', $side: '40'}, 500); Подскажите плз правильный синтаксис.
У тебя тут в оригинале стоит закрывающая скобка? $('#button-'+$side).click(function() { $('#content').animate({'margin-left': '50', 'left': '40'}, 500); }); И на будущее, если это JS, то использовать переменные вида $side в PHP рискованно, заменится каким-нибудь числом или массивом, можно и не заметить сразу. Так работает Код (Text): var left='margin-'+'left'; $('#button-left').click(function(){ $('#content').animate({left:'50','left':'40'},500); });
Спасибо, попробую. Да, закрывающая скобка в оригинале есть.) Просто оригинал очень большой, и делать вам мозги таким примером я не решился.)
Код (Text): $('#content').animate({left:'50','left':'40'},500); Тут кстати только стиль left сработает, приедет к 40 пикселям слева.
Значит ты что-то делаешь не так.)) У меня сработало только с объектом: Код (Text): var $side = 'left'; var $ob_marg1 = {}; $ob_marg1['margin-' + $side] = 50; $('#content').animate($ob_marg1, 500); Что самое странное, свойство .css нормально хавает переменные, а анимэйт нифига.)
На самом деле у меня тоже не работает. Делал Код (Text): var left='margin-left'; $('#button-left').click(function(){ $('#content').animate({left:'50'},{duration:500,queue:false}); }); Но берётся свойство left, а не margin-left. Если поменять переменную на left1, то вообще тишина. Дебаггер пишет Код (Text): Предупреждение: reference to undefined property f.event.triggered Предупреждение: reference to undefined property a.returnValue Предупреждение: reference to undefined property c.result
Если marginLeft, то нужно без кавычек, это имя переменной. Можно в кавычках название css 'margin-left'.
Нет, marginLeft это не имя переменной.) В кавычках оно воспринимается в JS как margin-left. Попов сказал, что 'marginLeft' писать "более правильно", так что просто прими как истину.)))
Вам с Поповым (если, конечно, он правда так пишет) следует почитать документацию http://api.jquery.com/animate/, иначе проблемы будут на каждом шагу. Добавлено спустя 2 минуты 46 секунд: Пример оттуда Код (Text): $("#block").animate({ width: "70%", opacity: 0.4, marginLeft: "0.6in", fontSize: "3em", borderWidth: "10px" }, 1500 ); Авторам видней, как и тем, кто читает документацию авторов.