如何添加mouseup事件jquery

时间:2017-04-11 22:10:27

标签: javascript jquery

我正在创建一个" mousedown"元素上的事件,如果按下shift键,则切换变量。我还希望在" mouseup"事件发生。

element.addEventListener("mousedown", (e)=>{
            if(e.shiftKey){
                this.start = true;
            } else {
                this.start = false;
            }
        });

我希望在上面的代码之后随后出现this.start时将mouseup设为false。任何人都可以帮我解决它。

谢谢。

3 个答案:

答案 0 :(得分:1)

看看https://api.jquery.com/mouseup/它谈论的是

.mouseup()

我相信你正在寻找的功能。它基本上是以下语法的简写:

.on('mouseup', handler)

可以像这样使用:

$( "#target" ).mouseup(function() {
  alert( "Handler for .mouseup() called." );
});

文档中的完整示例如下:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>mouseup demo</title>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>

<p>Press mouse and release here.</p>

<script>
$( "p" )
  .mouseup(function() {
    $( this ).append( "<span style='color:#f00;'>Mouse up.</span>" );
  })
  .mousedown(function() {
    $( this ).append( "<span style='color:#00f;'>Mouse down.</span>" );
  });
</script>

</body>
</html>

答案 1 :(得分:1)

首先听取Shift上的按键

var shiftIsPressedDown = false;
$(window).keydown(function(evt) {
  if (evt.which == 16) { // shift
    shiftIsPressedDown = true;
  }
}).keyup(function(evt) {
  if (evt.which == 16) { // shift
    shiftIsPressedDown = false;
  }
});

然后查看鼠标按下事件

$( "#target" ).mousedown(function() {
   if(shiftIsPressedDown){
     // Do logic here     
   }
});

答案 2 :(得分:-1)

我相信这个问题的工作代码改编自:jQuery keyboard event handler press and hold

var keysdown = {};
// keydown handler
$(document).keydown(function(e){
  // Do we already know it's down?
  if (keysdown[e.keyCode]) {
      // Ignore it
      return;
  }
  // Remember it's down
  keysdown[e.keyCode] = true;

  // Do our thing
  if (e.keyCode == 16){
      $(document).mousedown(function(){
         //this.start = true;                   
         console.log("this.start=true")
      });
      $(document).mouseup(function(){
         //this.start = false;
         console.log("this.start=false")
      });
  }
});
// keyup handler
$(document).keyup(function(e){
  // Remove this key from the map
  delete keysdown[e.keyCode];
});