为什么这样做?(JQuery的)

Joh*_*ier -7 javascript css jquery

这有效:

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

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

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

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

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

lxg*_*lxg 6

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

  • 我想4可能是在每个匿名函数中调用`.animate()`之后讨论隐含的分号. (2认同)