我使用jQuery的.css()方法将样式应用于元素.我是这样做的:
var cssObj = { 'background-color' : '#000','background-image': '-webkit-linear-gradient(top,#000,#fff)','background-image': 'linear-gradient(top,#fff)' }; $(".element").css(cssObj);
这个问题显然我在对象中使用了重复键,这并不酷.
解决方法
具有相同名称的多个密钥无效,并将在严格模式下生成错误.
创建一个应用cssObj属性的函数/插件.如果找到字符串对,请设置具有所需值的CSS属性.
如果找到数组,则循环遍历它,并使用每个值更新属性.如果找到无效值,则忽略该值.
// Created a plugin for project portability (function($){ $.fn.cssMap = function(map){ var $element = this; $.each(map,function(property,value){ if (value instanceof Array) { for(var i=0,len=value.length; i<len; i++) { $element.css(property,value[i]); } } else { $element.css(property,value); } }); } })(jQuery); // Usage: var cssObj = { 'background-color': '#000','background-image': ['-webkit-linear-gradient(top,'linear-gradient(top,#fff)'] }; $(".element").cssMap(cssObj);