代码之家  ›  专栏  ›  技术社区  ›  Charles-François St-Cyr

鼠标悬停和多个函数中的变量时按下

  •  0
  • Charles-François St-Cyr  · 技术社区  · 7 年前

    $(document).on("mousemove", function () {
        $(document).keydown(function(e) {
            if(e.which == 65){
                var $mLeft = '3px',
                    $mTop = event.pageY - $sidebarRightDisp;
            } else {
                var $mLeft = event.pageX - $sidebarLeftDisp,
                $mTop = event.pageY - $sidebarRightDisp;
            }
        });
        var $boxStyleAct = 'left:' + $mLeft + 'px;top:' + $mTop + 'px' + ';';
        var $boxAct = '<li style="' + $boxStyleAct + '"></li>';
    
        $(".boxes").append($boxAct);
    });
    

    顺便说一句,我真的不能把我的“//do something with x”放在keydown函数中。

    非常感谢你。

    2 回复  |  直到 7 年前
        1
  •  0
  •   H77    7 年前

    你的 x

    你可以这样做。

    var aPressed = false;
    var keyPressed = false;
    var sidebarRightDisp = 5;
    var sidebarLeftDisp = 5;
    
    $(document).mousemove(function(event) {
      if (!keyPressed)
        return;
    
      var mLeft, mTop;
      if (aPressed) {
        mLeft = '3px';
        mTop = event.pageY - sidebarRightDisp;
      } else {
        mLeft = event.pageX - sidebarLeftDisp;
        mTop = event.pageY - sidebarRightDisp;
      }
    
      var boxStyleAct = 'left:' + mLeft + 'px;top:' + mTop + 'px' + ';';
      var boxAct = '<li style="' + boxStyleAct + '"></li>';
    
      $(".boxes").append(boxAct);
    
    }).keydown(function(e) {
      keyPressed = true;
      aPressed = e.which == 65;
    
    }).keyup(function(e) {
      keyPressed = false;
      aPressed = false;
    
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <div class="boxes">
    </div>
        2
  •  0
  •   ewwink    7 年前

    试试这个

    var AkeyPressed = false;
    var status = document.getElementById('status');
    
    $(document).on('mousemove', function() {
      if(AkeyPressed == true) {
        console.log("mouse moving while pressing A key");
      }
      else {
        console.log("A key not pressed ");
      }
    });
    $(document).keydown(function(e) {
      if(e.which == 65) {
        AkeyPressed = true;
        //var x = true;
      }
      else {
        AkeyPressed = false;
        //var x = false;
      }
    });
    $(document).keyup(function(e) {
      AkeyPressed = false;
    });
    window.focus();
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>