4

我正在尝试在mouseenter触发事件时应用样式,但是如果我取消注释以下未触及的选择器 - 即使文档准备就绪也会停止工作。

<body>
<div id="1" class="button untouched"></div>
<script src="/jquery.js"></script>
<script>
$(document).ready(function(){
    alert("JQuery is working");
});

/*
$(".untouched").mouseenter($function(){
    $(this).addClass("touched");
});
*/
</script>
</body>

我正在关注在以下位置找到的示例:

http://api.jquery.com/mouseenter/

在 Firebug 中收到以下错误

missing ) after argument list
[Break On This Error]   

$(".untouched").mouseenter($function(){

由于它不起作用,我犯了一个错误,但我不知道是什么。我所知道的是,如果我让它运行,我的代码都不起作用。我下载了最新的 1.7.2 版本的 jQuery,我知道它在页面上可用,因为alert()与其他运行一起被注释掉了。

4

4 回答 4

4

函数前面不需要 $ 。此外,mouseenter 事件函数代码应该在文档内准备好。

<script>
     $(document).ready(function(){
         alert("JQuery is working");

         $(".untouched").mouseenter(function(){
             $(this).addClass("touched");
         });
     });
</script>
于 2012-06-08T01:39:57.950 回答
2

在您的脚本中,该$(".untouched")部分应该在ready函数内。还,

mouseenter($function(){$ 符号不正确。

您的最终脚本应如下所示:

$(document).ready(function(){
    alert("JQuery is working");

    $(".untouched").mouseenter(function(){
        $(this).addClass("touched");
    });
});
于 2012-06-08T01:39:09.087 回答
2

你有一个额外的$你不应该在这个词前面function。您可能还想删除untouched该类:

$(".untouched").mouseenter(function(){
    $(this).removeClass("untouched").addClass("touched");
});
于 2012-06-08T01:40:40.210 回答
1

您可以从 css 轻松执行此操作

    .untouched 
       {
       background: green;
      }

    .untouched :hover
      {
       background: blue
       }

在 JQuery 中,如果您想使用 .mouseover ,您需要使用函数 - 一个用于将鼠标悬停时,一个用于鼠标未悬停时。这在 css 中更容易,只有一个 :hover 过滤器

       $('.untouched').mouseover(function() {
               $(this).addClass('touched');
                     });
       $('.untuoched').mouseout(function() {
              $(this).removeClass('touched');
                      });
于 2012-06-08T01:49:19.770 回答