Упрощение кода Jquery

0

Я новичок в jQuery и экспериментирую со следующим.

var datastartscale = $(this).attr('data-start-scale');

$(this).css({'transform': 'scale(' + datastartscale + ')',
             '-ms-transform': 'scale(' + datastartscale + ')',
             '-webkit-transform': 'scale(' + datastartscale + ')',
             '-moz-transform': 'scale(' + datastartscale + ')'});

Я пытаюсь поместить данные css в переменную без успеха. Мне нужно вызвать эту переменную несколько раз, поэтому сохранение всех этих данных в переменной было бы наиболее идеальным.

var properties = "'transform': 'scale(' + datastartscale + ')','-ms-transform': 'scale(' + datastartscale + ')','-webkit-transform': 'scale(' + datastartscale + ')','-moz-transform': 'scale(' + datastartscale + ')'";

и тогда я бы написал:

 $(this).css({properties});

Какие-либо предложения?

благодаря

  • 0
    Почему бы и нет: var properties = {'transform': 'scale(' + datastartscale + ')','-ms-transform': 'scale(' + datastartscale + ')','-webkit-transform': 'scale(' + datastartscale + ')','-moz-transform': 'scale(' + datastartscale + ')'};
Теги:
function
variables

3 ответа

0
Лучший ответ

Вы должны сохранить свойства как объект:

var properties = {'transform': 'scale(' + datastartscale + ')',
                  '-ms-transform': 'scale(' + datastartscale + ')',
                  '-webkit-transform': 'scale(' + datastartscale + ')',
                  '-moz-transform': 'scale(' + datastartscale + ')'
                 }
$(this).css(properties);
  • 0
    Спасибо, это прекрасно работает, мне также нравится твое форматирование, намного легче следить, чем мое.
0

Просто сделайте

var properties = {'transform': 'scale(' + datastartscale + ')',
         '-ms-transform': 'scale(' + datastartscale + ')',
         '-webkit-transform': 'scale(' + datastartscale + ')',
         '-moz-transform': 'scale(' + datastartscale + ')'}

а также

$(this).css(properties);
  • 1
    Вьющиеся скобки вокруг properties в вызове .css() не должны быть там.
  • 0
    Вы правы, это прекрасно работает, как только я убрал фигурные скобки вокруг $ (this) .css ({properties}); $ (this) .css (свойства);
0

Переменная должна содержать объект, как и аргумент функции, а не строку:

var properties = {'transform': 'scale(' + datastartscale + ')',
                  '-ms-transform': 'scale(' + datastartscale + ')',
                  '-webkit-transform': 'scale(' + datastartscale + ')',
                  '-moz-transform': 'scale(' + datastartscale + ')'};

Ещё вопросы

Сообщество Overcoder
Наверх
Меню