Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 鼠标向下移动时,鼠标向上移动_Jquery_Onmouseover_Onmousedown - Fatal编程技术网

Jquery 鼠标向下移动时,鼠标向上移动

Jquery 鼠标向下移动时,鼠标向上移动,jquery,onmouseover,onmousedown,Jquery,Onmouseover,Onmousedown,我有一张大桌子,每个单元格是25x25,每个单元格内有一个div。每个div都有一个“node”类,所有div都应用了背景色。我正在编写一些jQuery代码,当鼠标按下时,当鼠标移到每个div上时,这些代码会改变每个div的颜色 我目前有它,所以它的工作时,我鼠标在上面,但我只希望它的工作时,鼠标按钮也下降。我已经尝试了许多不同的方法让它工作,但到目前为止我还没有看,下面是我目前的代码 $(document).ready(function(){ $(".node").mouseover(fu

我有一张大桌子,每个单元格是25x25,每个单元格内有一个div。每个div都有一个“node”类,所有div都应用了背景色。我正在编写一些jQuery代码,当鼠标按下时,当鼠标移到每个div上时,这些代码会改变每个div的颜色

我目前有它,所以它的工作时,我鼠标在上面,但我只希望它的工作时,鼠标按钮也下降。我已经尝试了许多不同的方法让它工作,但到目前为止我还没有看,下面是我目前的代码

$(document).ready(function(){
  $(".node").mouseover(function(){
   $(this).css({background:"#333333"});
 });
});

试着这样做:

$(document).ready(function(){

  var isDown = false;   // Tracks status of mouse button

  $(document).mousedown(function() {
    isDown = true;      // When mouse goes down, set isDown to true
  })
  .mouseup(function() {
    isDown = false;    // When mouse goes up, set isDown to false
  });

  $(".node").mouseover(function(){
    if(isDown) {        // Only change css if mouse is down
       $(this).css({background:"#333333"});
    }
  });
});

编辑:

您可能需要在
.node
上单独执行
鼠标下移
,以选择单个项目

  $('.node').mousedown(function() {
    $(this).css({background:"#333333"});
  });

编辑:

这里有一种使用
bind
unbind
的替代方法

  $(document).mousedown(function() {
      $(".node").bind('mouseover',function(){
          $(this).css({background:"#333333"});
      });
  })
  .mouseup(function() {
    $(".node").unbind('mouseover');
  });

  $('.node').mousedown(function() {
    $(this).css({background:"#333333"});
  });

+1-为什么没有一种方法来检查
mousedown
(以及其他状态…我们有它们用于
alt
ctrl
,等等…为什么没有鼠标?)是我无法理解的,即使在DOM2中,除非我遗漏了规范中的某些内容。@Stanni-正如Nick Craver所指出的,如果
mousedown
开始于
节点
元素,那一个不会得到背景。这适合你吗?@Stanni-不客气o) 我在
.node
上用一个额外的
mosuedown
更新了我的答案,这样你仍然可以进行单项选择。@Stanni-好的,还有一件事,我保证我会离开;o) 为了全面起见,我添加了一个备用版本,使用了
bind
unbind
,以防您不喜欢分散的变量。现在完成o) 那就更好了。你是对的,我更喜欢不用变量的。再次感谢。