JQuery: устал от css(). css(). css()
Я действительно устал от синтаксиса:
.css('position','absolute').css('z-index',z-index)
.css('border','1px solid #00AFFF').css('margin','-1px 0px 0px -1px')
.css('left',pleft)
Интересно, есть ли способ передать все параметры в одной функции, например:
.foo('position':'absolute','z-index':z-index,
'border':'1px solid #00AFFF','margin':'-1px 0px 0px -1px',
'left':pleft)
Очень ценю любую помощь.
Ответы
Ответ 1
Да, передайте объект .css()
(также указанный в документах):
.css({
position: 'absolute',
left: pleft,
zIndex: 123
...
});
Обратите внимание, что вы можете использовать оба синтаксиса для ключей: zIndex
, то есть версия для верблюжей, которую можно использовать непосредственно в JavaScript и 'z-index'
(цитаты, необходимые как -
, в противном случае нарушали бы).
Для вариантов, которые всегда одинаковы - в вашем случае, вероятно, position
, border
и margin
- это может быть хорошей идеей для классического правила CSS, установленного с помощью селектора классов/идентификаторов. Тогда вам просто нужно установить оставшиеся (динамические) параметры с помощью .css()
.
Ответ 2
Определить стиль в отдельном классе
CSS
.myCustomClass
{
position: absolute;
border: 1px solid #00AFFF
}
И js
.addClass('myCustomClass');
И это очень просто для управления, если стили слишком сложны
Ответ 3
$(element).css({'position':'absolute','z-index':zIndex,
'border':'1px solid #00AFFF','margin':'-1px 0px 0px -1px',
'left':pleft});