我试图检测在将光标移到特定元素上时是否按下了Shift键。该函数将触发,但是只有在我首先单击另一个元素之后才触发。有什么办法可以解决此问题?我尝试将焦点设置在文档和元素上,并尝试创建伪单击功能,但到目前为止没有任何效果。

例如,以下代码仅在我单击页面上的另一个元素后才有效:

$("#selector").mouseover(function(e){
    if(e.shiftKey) {
        console.log("the shift key is pressed");
    }
});

在此先感谢您提供任何信息。

最佳答案

在按键事件上检查一下:

$(document).keypress(function (e) {

  if(e.shiftKey) {
    pressed = true; // pressed is a global varialbe. Be carefull of the scope
  }

}

然后在键盘上:
$(document).keyup(function(event){
   pressed = false;
});

然后做:
$("#selector").mouseover(function(e){
    if(pressed) {
        console.log("the shift key is pressed");
    }
});

或反过来:
$("#selector").mouseover(function(e){
    isover = true;
});


   $(document).keypress(function (e) {

      if(e.shiftKey) {
        alert("do something")
      }

   }

关于jquery - Shift +鼠标悬停与jQuery,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1441086/

10-10 22:03