1

我的 jquery 代码它不工作时

   $("a").on("hover",function(){$(this).css("background","#ccc");},function(){$(this).css("background","#fff")});

但是在工作的时候

$("a").hover(function(){$(this).css("background","#ccc");},function(){$(this).css("background","#fff")});

如何使它与悬停一起工作

4

3 回答 3

1

.on()悬停的情况下,它看起来像

$("a").on('hover', function(e) {
  if(e.type =='mouseenter') {
   // code for mouseenter
  } else {
   // code for mouseleave
  }
});

但是 for.hover()是接受两个功能,第一个 formouseenter和第二个 for mouseleave

$('a').hover(
  // for mouseenter
  function() {

  },
  // for mouseleave
  function() {

  }
);

因此,如果您想使用,.on()那么您的代码将:

$("a").on('hover', function(e) {
  if(e.type =='mouseenter') {
     // code for mouseenter
     $(this).css("background","#ccc");
  } else {
     // code for mouseleave
     $(this).css("background","#fff")
  }
});

正如@ThiefMaster评论,如果你想单独绑定mouseentermouseleave那么你可以尝试:

$('a')
     .mouseenter(function() {
        $(this).css('background', '#ccc');
      })
     .mouseleave(function() {
         $(this).css('background', '#fff');
      });

或者使用.on()你可以做

$('a').on({
  mouseenter: function() {
     $(this).css('background', '#ccc');
  },
  mouseleave: function() {
     $(this).css('background', '#fff');
  }
});
于 2012-06-20T06:48:13.873 回答
1

悬停是事件的快捷mouseenter方式mouseleave。所以你可以绑定那些使用 on like

$("a").on({ 
           mouseenter: function(){$(this).css("background","#ccc");},
           mouseleave: function(){$(this).css("background","#fff");}
         });
于 2012-06-20T06:49:35.503 回答
1

这是一个现场演示

和代码

$("a").on('hover', function(e) {
  if(e.type =='mouseenter') {
      // do something when mouse enter
      alert("mouse enter");
  } else {
      // do something when mouse leave
      alert("mouse leave");
  }
});​
于 2012-06-20T06:55:16.910 回答