和悬停不一起工作

时间:2012-06-20 06:46:13

标签: javascript jquery html

我的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")});

如何使其与悬停

一起使用

3 个答案:

答案 0 :(得分:1)

如果.on()悬停,它将显示为

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

但是对于.hover()mouseenter接受两个函数,第一个接受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")
  }
});

如果你想分别绑定mouseentermouseleave那么 @ThiefMaster 注释,那么你可以尝试:

$('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');
  }
});

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

这是一个实时demo

代码

$("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");
  }
});​