передача стиля в качестве аргумента для jquery animate - PullRequest
0 голосов
/ 29 ноября 2010

, поэтому у меня есть функция для обработки элементов при наведении, однако я хочу иметь возможность передавать стили CSS в качестве аргумента. я пробовал разные варианты, но в настоящее время это мой код (только необходимая часть) ...

function load_hovers(mouseOverCss){
  $('.hover').hover(function(){
    $(this).animate({
      eval(mouseOverCss)
    }, 500, function() {
    });

и я звоню load_hovers("backgroundColor: 'red'");

это возвращает ошибку invalid object initializer $(this).animate({. без использования eval ошибка missing : after property id {eval(mouseOverCss)}\n.

есть предложения?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2010

получил.

var mouseOverCss = {};
mouseOverCss['backgroundColor'] = 'red';
mouseOverCss['paddingLeft'] = '100px';
load_hovers(mouseOverCss);

, а затем просто

$(this).animate(mouseOverCss, duration);

спасибо Филу за то, что он помог мне не просто отправлять предварительно отформатированную строку для animate ()!

0 голосов
/ 29 ноября 2010

Возможно, вам лучше держаться подальше от опции Eval (Eval - зло и все такое ...) и вместо этого попытаться передать объект в ваш метод.

Сначала создайте объект для вашего аргумента CSS:

var css = {};
css.Property = 'backgroundColor';
css.Value = 'Red';

Затем вы можете передать это (или массив из них, если вам нужно несколько свойств) вашему методу:

function load_hovers(classes)
{
    $('.hover').hover(function(){
      $(this).animate({
        $(this).css(classes.Property, classes.Value); // or iterate over an array of these
      }, 500, function() {
      });
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...