Javascript 为什么这样做有效?(JQuery)

Javascript 为什么这样做有效?(JQuery),javascript,jquery,css,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(31197,78,

这项工作:

$('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(31197,78,0.75)”不需要引号。
2背景色应为背景色。
颜色后应使用3个分号。
4分号应在针对“this”的内部功能之后使用

据我所知,上面的四点是正确的CSS和JS,但它们中的任何一点都会破坏这段代码

这是一个奇怪的$()。动画和任何机会,它将被改变?还是我应该死记硬背

  • 不是。它是一个CSS属性,作为文本字符串传递,以便jQuery将其解释为CSS属性
  • 否。CSS属性转换为。尽管jQuery也可以采用连字符形式,但您的示例的作者已经选择将它们以驼峰式大小写,因此不需要引用它们。(为了便于阅读。)
  • 不可以。CSS中的分号用于分隔多个规则。最后一条规则不需要以分号
    #foo{color:white}
    终止,这在CSS中是完全合法的
  • 不,没有别的了。此外,如果有一个物理行尾(即像
    \n
    那样的换行符),它们也是可选的
  • 1“rgba(3119778,0.75)”不需要引号

    是的,应该是这样。它是一个文本字符串,不是一个值。这是因为您使用的是JS,而不是CSS。引号之间的任何内容都用作CSS。JS不在乎你在里面放了什么,它可能是
    “煎饼”
    (这显然不会像CSS那样做任何事情)

    2背景色应为背景色

    不,
    -
    在JS中表示“减号”。它已经用于计算。在CSS中是背景色,而在jQuery中是背景色。没有理由让它完全相同,因为这不是一个字面上作为CSS插入的字符串(因为它周围没有引号)

    颜色后应使用3个分号

    分号由jQuery添加。没有必要使用类似于“rgba(31197,78,0.75);”的东西

    4分号应在针对“this”的内部功能之后使用

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

    这是一个奇怪的$()。动画和任何机会,它将被改变?还是我应该死记硬背


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

    你的4分都错了。没错——每一个主题看起来都可能混淆了CSS语法和jQuery/javascript语法。这是两件截然不同的事情。尝试读取jQuery的动画函数的文档。不要泄气!1、2和3:您正在JavaScript中设置CSS属性,因此您编写的内容与在CSS文件中编写的内容不同。4:分号是可选的-有效的分号将位于
    1200)之后在这两种情况下。请阅读jQuery API文档!嗯,对于
    2
    来说,
    的CSS语义无论如何都是不相关的。这里设置的是一个style属性,这些值中没有分号。我想4可能是指在每个匿名函数中调用
    .animate()
    后隐含的分号。另外,setters和getter中的2:jQuery,尽管camelCase样式允许键不带引号。@cmbuckley是的,4在
    .animate()
    之后谈到了隐含的分号啊,那是我第一次学习时的好时光。