在jQuery Selector中使用' - '符号会出错

时间:2012-11-21 14:16:21

标签: jquery html css

我正在尝试运行以下代码:

$(document).ready({

    $("#menu-nav a").hover(
         function () {
           $(this).css ( marginRight: '20px' );
         }, 
         function () {
            $(this).css ( marginRight: '10px' );
         }
     );



}); //end ready

但是,我的Dreamweaver会在$("#menu-nav a").hover(行上报告错误。可以将选择器用作#menu-nav a,还是应该是其他东西?

4 个答案:

答案 0 :(得分:3)

问题在于:

$(document).ready({

你需要这个:

$(document).ready(function () {

我相信你知道这一点,但很容易被忽视,因为错误显示在下一行。


另一个问题:

我认为你也会遇到问题:

 $(this).css ( marginRight: '20px' );

根据jQuery docs,你应该使用这个:

 $(this).css ('margin-right', '20px');

替代方案:

这是另外一件事,只是为了给出一个完整的答案。正如评论中所指出的,如果你不想使用它,你真的根本不需要jQuery。试试这个:

#menu-nav a:hover { margin-right: 20px; }

你可以添加你想要的任何样式。

答案 1 :(得分:3)

在你的例子中

$(document).ready({...});

应该是

$(document).ready(function(){
    //...
});

并且还要改变

$(this).css ( marginRight: '20px' );

$(this).css('marginRight','20px');

$(this).css({'marginRight':'20px'});

两行

答案 2 :(得分:2)

您没有传递对象,因此您无法使用property: value,您可以编码:

$(this).css({ marginRight: '20px'});

或:

$(this).css( 'marginRight', '20px' );

答案 3 :(得分:0)

我使用这个约定来避免在无数括号和括号中迷失和混淆:

$(document).ready(DocReady);

function DocReady()
{       
       // More code here
}

一个优点是你也可以通过点击按钮调用DocReady函数(也许是为了测试它)。