将参数hash传递给jquery css()

时间:2017-03-19 17:54:58

标签: jquery css hash

有人能告诉我如何通过javascript函数将这个css属性/值对的散列传递给jquery css函数吗?

var $myFunction = function(el, c){

  $(el).css(c);
  //$(el).css({c});

};

$myFunction("#myDiv", '{top:50px}');
//$myFunction("#myDiv", 'top:50px');

编辑:我已经更新了这个带有工作解决方案的好消息,如同每个人一样,费城的答案.​​.....

Here's the UPDATED fiddle

对于我的生活,我无法看到我出错的地方 - 尝试了很多不同的排列。

非常感谢任何可以看一眼的人......

干杯,斯科特

3 个答案:

答案 0 :(得分:0)

您需要将一个对象(属性 - 值对设置)传递给.css(properties)方法,所以也请在您的函数中接受。

$myFunction("#myDiv", {
  top: "50px",
  background: "red"
});

Updated Fiddle

答案 1 :(得分:0)

CSS方法采用以下格式的参数

$(elem).css({ 
   "border" : "1px solid blue", 
   "display" : "block",     
   "background" : "#F00" 
});

所以你的代码应该修改为

$myFunction("#myDiv", {
   "top" : "50px"
 });

答案 2 :(得分:0)

只做

  

$(EL)的CSS(JSON.parse(C));

解决您的问题。

  

注意:您还需要在创建属性时使用引号:值对,即您必须将参数构造为' {top:" 50px"}'

.css()函数接受接受属性 - 值对的PlainObject。当你调用$ myfunction时,它将第二个参数作为string.JSON.parse()传递给一个有效的对象。

干杯