jquery:厌倦了 css().css().css()

Posted

技术标签:

【中文标题】jquery:厌倦了 css().css().css()【英文标题】:jquery: tired of css().css().css() 【发布时间】:2012-06-01 01:00:09 【问题描述】:

我真的厌倦了这样的语法:

.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)

非常感谢任何帮助。

【问题讨论】:

仅供参考,您的代码无效。 z-index 不是一个有效的变量名,但 z 减去 index 假设两个变量都存在;否则就是错误。 api.jquery.com 存在于此类问题。此外,如果您要进行如此多的内联 CSS 更改,请设置样式表并简单地使用 addClass("myclass"); 是的,这只是一个例子......我从来没有这样的变量:) 【参考方案1】:

是的,将一个对象传递给.css()(也是mentioned in the docs):

.css(
    position: 'absolute',
    left: pleft,
    zIndex: 123
    ...
);

请注意,您可以对键使用两种语法:zIndex,即可以直接在 javascript 中使用的驼峰式版本和 'z-index'(需要引用 - 否则会破坏事情)。

对于始终相同的选项 - 在您的情况下可能是 positionbordermargin - 通过 class/id 选择器设置经典 CSS 规则可能是个好主意。然后您只需通过.css() 设置剩余的(动态)选项。

【讨论】:

【参考方案2】:

在单独的类中定义样式

css

.myCustomClass

     position: absolute;
     border: 1px solid #00AFFF

还有js

.addClass('myCustomClass');

如果样式太复杂,这很容易管理

【讨论】:

不回答他的问题,如果他需要一些动态值也不起作用。他仍然需要.css() @ThiefMaster 无论如何,对于某些情况,这是一个很好的解决方案,值得一提:) 这是正确的 ThiefMaster,我一直在将课程用于其他目的 - 但事实并非如此【参考方案3】:
$(element).css('position':'absolute','z-index':zIndex,
     'border':'1px solid #00AFFF','margin':'-1px 0px 0px -1px',
     'left':pleft);

【讨论】:

以上是关于jquery:厌倦了 css().css().css()的主要内容,如果未能解决你的问题,请参考以下文章

使用 javascript 或 jQuery 生成 CSS 媒体查询

厌倦写代码的人是如何做软件开发的

ASP.NET MVC5 JQuery 数据表 CSS 不适用于 Bootstrap Lumen

如何在Nuxt.js项目的页面中包含CSS

jQuery样式与动画

Elastislide插件通过横向传送带方式浏览图片