1

所以我希望按钮在鼠标按下时改变样式,并在鼠标上升时返回上一个。我有这个代码:

$('#divMenu > #menu li a').mousedown(function(){
  $(this).css({
  'font-size': '25px',  
  'color': 'red'     
  });               
}).mouseup(function(){
  $(this).css({
  'font-size': '30px',  
  'color': 'black'     
  });               
});

问题是,当我按下鼠标但将其从我的对象上移开而不立即释放时,字体大小和颜色保持 25 像素和红色。我该怎么做才能通过?

编辑:这里的 JsFiddle:http: //jsfiddle.net/h64Uz/

4

3 回答 3

6

您还需要使用鼠标移出。

$('#divMenu > #menu li a').mousedown(function(){
  $(this).css({
  'font-size': '25px',  
  'color': 'red'     
  });               
}).mouseup(function(){
  $(this).css({
  'font-size': '30px',  
  'color': 'black'     
  });               
}).mouseout(function(){
  $(this).css({
  'font-size': '30px',  
  'color': 'black'     
  });               
});

单击鼠标时,您的事件代码会设置 css。一旦你离开它就不能注册鼠标。但是在离开时它会注册一个 mouseout 事件。

于 2013-01-08T03:51:56.263 回答
1

jQuery 有一个mouseleave()事件可以用来补充现有代码:

于 2013-01-08T03:53:16.863 回答
1

这应该可以工作(假设您使用的是jQuery1.7 或更高版本):

$('#divMenu > #menu li a').on("mousedown", function () {
  $(this).css({
    'font-size': '25px',
      'color': 'red'
  });
}).on("mouseup mouseout", function () {
  $(this).css({
    'font-size': '30px',
      'color': 'black'
  });
});
于 2013-01-08T03:53:48.370 回答