Хотя я пытался создать слайдер, мне нужно сделать это условно, применив marginLeft
или marginTop
, поэтому я пытался взять его из возвращаемого значения переменной.
Но я погрузился в проблему, и после того, как много борьбы обнаружило, в чем проблема ===> Я не могу принять значение переменной для метода jQuery. Сначала я подумал, что var something = 'margin-left';
не будет работать, поскольку {margin-left :...}
не работает без цитаты и поэтому попробовал его с marginLeft
как в примере ниже:
Это работает:
$(selector).click(function(){
$(element).animate({
marginLeft: '-=600'
Это также работает:
$(selector).click(function(){
var toLeft = '-=600';
$(element).animate({
marginLeft: toLeft
Но почему не это? :
$(selector).click(function(){
var move = 'marginLeft';
$(element).animate({
move: '-=600'
Ха! Невозможно присвоить присвоение свойства переменной jQuery для использования в методе {property: value}
?
Как я могу заставить его работать? Или это ошибка?
Когда вы создаете объект в этом синтаксисе,
{
property: value
}
имя свойства не может быть переменной. Само название, которое вы используете здесь, будет именем свойства. В твоем случае:
var move = 'marginLeft';
$(element).animate({
move: '-=600'
свойство называется "move", а не "marginLeft".
Чтобы достичь того, чего вы хотите, сделайте следующее:
var move = 'marginLeft';
var options = {};
options[move] = '-=20';
$(element).animate(options);
И вот вот твоя рабочая демонстрация.