为什么这样做? (JQuery的)

时间:2014-10-07 21:32:24

标签: javascript jquery css

这有效:

$('div.hg_logo').hover(
    function(){$(this).animate({
        backgroundColor: 'rgba(31, 197, 78, 0.75)'
    }, 1200)},
    function(){$(this).animate({
        backgroundColor: 'white'
    }, 1200)}
);

但鉴于我对CSS和JS的了解,它不应该!

1'rgba(31,197,78,0.75)'不应该引用 2 backgroundColor应为背景色 3颜色后应使用分号 在以“this”为目标的内部功能之后,应使用4个分号。

根据我的理解,上面的四点是正确的CSS和JS - 但是其中任何一个都破坏了这段代码。

这是$()。animate的怪癖,还有机会改变吗?或者我应该承诺死记硬背?

2 个答案:

答案 0 :(得分:6)

  1. 否。它是一个CSS属性,作为文字字符串传递,以便被jQuery解释为CSS属性。
  2. 否。 CSS属性转换为CamelCase when used in JS。虽然jQuery也可以用连字符形式表示它们,但是你的例子的作者已经选择了驼峰形式,因此它们不需要被引用。 (出于可读性的原因。)
  3. 否。 CSS中的分号用于分隔多个规则。最后一条规则不需要以分号结尾#foo { color: white }在CSS中完全合法。
  4. 否。 Semicolons in JS indicate a logical line ending,别的。此外,如果有一个物理行结束(即像\n这样的换行符),它们是可选的。

答案 1 :(得分:1)

  

1'rgba(31,197,78,0.75)'不应该引用。

是的,应该。它是文本的STRING,而不是值。这是因为您使用的是JS,而不是CSS。引号之间的任何内容都用作CSS。 JS并不关心你放在那里的东西,它可能也是'pancake'(显然不会像CSS那样做任何事情)。

  

2 backgroundColor应为背景色。

不,-在JS中的意思是'减'。它已经用于计算。在CSS中它是background-color,jQuery是backgroundColor。它没有理由完全相同,因为这不是一个字面意思插入CSS的字符串(因为它没有引号)。

  

3颜色后应使用半冒号。

jQuery添加分号。无需使用'rgba(31, 197, 78, 0.75);'

之类的内容
  

在以“this”为目标的内部函数之后应该使用4个分号。

这样做确实更加一致,但不需要它,因为包含该函数的块中没有代码行。通常,在块中的最后一行代码之后不需要分号(块通常使用{}进行封装。

  

这是$()。animate的怪癖,还有机会改变吗?或者我应该承诺死记硬背?

这很合乎逻辑,不会很快改变。我建议您更多地了解JS和jQuery,以提高您的理解。或者你可以接受这些东西并试着记住它们;)