【JS】键盘鼠标事件

一,键盘

keydown 表示按下键盘

keypress 表示按下键盘

keyup 表示键盘弹起

这三者的区别分别表现在发生的 先后顺序,获取到的键盘按钮值,已经对输入框的文本取值这三方面

先后顺序: 按照 keydown keypress keyup 顺序发生

键盘按钮值:

通过event对象的which属性获取键盘的值

keydown和keyup 能获取所有按键,不能识别大小写

keypress 不能获取功能键,如F1 SHIFT等,能够识别大小写

文本取值:

keydown和keypress:不能获取最后一个字符

keyup: 获取所有字符

<script src="http://how2j.cn/study/jquery.min.js"></script>

<script>
var order = 0;
var clearTimer=null;
$(function(){
  $("#i").keydown(function(e){
     var selector = "keydown";

     show(selector,e,$(this).val());
  });

  $("#i").keypress(function(e){
     var selector = "keypress";
     show(selector,e,$(this).val());
  });

  $("#i").keyup(function(e){
     var selector = "keyup";
     show(selector,e,$(this).val());
  });

});

function show(selector,e,inputvalue){
     clearTimeout(clearTimer);
     action(selector);
     key(selector,e);
     value(selector,inputvalue);
     clearTimer= setTimeout(clear,4000);
}

function action(selector){
    $("#"+selector+"Action").css("background-color","green");
    $("#"+selector+"Action").html("顺序: " + (++order ) );
}

function value(selector,value){
    $("#"+selector+"Value").html(value);
}

function key(selector,e){
    $("#"+selector+"Key").html(e.which);
}

function clear(){
  order = 0;
  $("tr#action div").css("background-color","red");
  $("tr div").html("");
}

</script>
<style>
tr#action div{
  border: 1px solid black;
  height:50px;
  background-color:red;
}

tr#value div,tr#key div{

  height:50px;
  background-color:#d1d1d1;
}

td{
 width:25%;
}
</style>
输入框:<input id="i">
<table width="100%">
<tr>
  <td></td>
  <td>keydown</td>
  <td>keypress</td>
  <td>keyup</td>
</tr>
<tr id="action">
  <td>行为</td>
  <td><div id="keydownAction"></div></td>
  <td><div id="keypressAction"></div></td></td>
  <td><div id="keyupAction"></div></td></td>
</tr>

<tr id="key">
  <td>按键</td>
  <td><div id="keydownKey"></div></td></td>
  <td><div id="keypressKey"></div></td></td>
  <td><div id="keyupKey"></div></td></td>
</tr>

<tr id="value">
  <td>取值</td>
  <td><div id="keydownValue"></div></td></td>
  <td><div id="keypressValue"></div></td></td>
  <td><div id="keyupValue"></div></td></td>
</tr>

</table>

敲入ab

发生的先收顺序是 keydown,keypress,keyup

keydown和keyup取到大写B的ASCII码表 66,keypress取到小写b的ASCII码表 98.

keydown和keypress只能取到文本值a, keyup可以取到ab。

二,鼠标

mousedown 表示鼠标按下

mouseup表示鼠标弹起

mousemove表示鼠标进入

mouseenter表示鼠标进入

mouseover表示鼠标进入

mouseleave表示鼠标离开

mouseout表示鼠标离开

<script src="http://how2j.cn/study/jquery.min.js"></script>

<script>
$(function(){
$("#downup").mousedown(function(){
   $(this).html("鼠标按下");
});
$("#downup").mouseup(function(){
   $(this).html("鼠标弹起");
});
var moveNumber  =0;
var enterNumber  =0;
var leaveNumber  =0;
var overNumber  =0;
var outNumber  =0;

var enterNumber1  =0;
var overNumber1  =0;

var leaveNumber1  =0;
var outNumber1  =0;

$("#move").mousemove(function(){
  $("#move span.number" ).html(++moveNumber);
});
$("#enter").mouseenter(function(){
  $("#enter span.number" ).html(++enterNumber);
});
$("#leave").mouseleave(function(){
  $("#leave span.number" ).html(++leaveNumber);
});
$("#over").mouseover(function(){
  $("#over span.number" ).html(++overNumber);
});
$("#out").mouseout(function(){
  $("#out span.number" ).html(++outNumber);
});

$("#enter1").mouseenter(function(){
  $("#enter1 span.number" ).html(++enterNumber1);
});
$("#over1").mouseover(function(){
  $("#over1 span.number" ).html(++overNumber1);
});

$("#leave1").mouseleave(function(){
  $("#leave1 span.number" ).html(++leaveNumber1);
});

$("#out1").mouseout(function(){
  $("#out1 span.number" ).html(++outNumber1);
});

});

</script>  

<style>
div{
  background-color:pink;
  margin:20px;
  padding:10px;
}

.subDiv{
  background-color:green;
  margin:10px;
}

.parentDiv{
  background-color:pink;
  height:80px;
}

table{
 width:100%;
 border-collapse:collapse;
  table-layout:fixed;
}
td{
  border: 1.5px solid #d1d1d1;
  vertical-align:top;
  padding:20 0;
}

</style>
<table >
  <tr>
    <td width="100px">事件</td>
    <td>效果演示</td>
  </tr>
  <tr>
    <td>mousedown <br />
    mouseup<br /></td>
    <td>
      <button id="downup" style="margin-left:20px">鼠标按下弹起测试</button>    </td>
  </tr>
  <tr>
    <td>mousemove<br />
      mouseenter<br />
      mouseover<br />
      mouseleave<br />
    mouseout</td>
    <td>
        <div id="move">mousemove 当鼠标进入元素,每移动一下都会被调用 次数<span class="number">0</span></div>
        <div id="enter">mouseenter 当鼠标进入元素,调用一下,在其中移动,不调用 次数<span class="number">0</span></div>
        <div id="over">mouseover 当鼠标进入元素,调用一下,在其中移动,不调用 次数<span class="number">0</span></div>
        <div id="leave">mouseleave 当鼠标离开元素,调用一下 次数<span class="number">0</span></div>
  <div id="out">mouseout 当鼠标离开元素,调用一下 <span class="number">0</span></div>  </tr>
  <tr>
    <td>mouseenter<br />
    mouseover</td>
    <td>

    <div id="enter1" class="parentDiv">
    mouseenter 经过其子元素不会被调用 次数<span class="number">0</span> 

       <div class="subDiv">div中的子元素      </div>
    </div>

        <div id="over1" class="parentDiv">
    mouseover  经过其子元素会被调用 次数<span class="number">0</span> 

       <div class="subDiv">div中的子元素      </div>
    </div>    </td>
  </tr>
  <tr>
    <td>mouseleave<br />
      mouseout    </td>
    <td>
    <div id="leave1" class="parentDiv">
    mouseleave 经过其子元素不会被调用 次数<span class="number">0</span> 

       <div class="subDiv">div中的子元素      </div>
    </div>

    <div id="out1" class="parentDiv">

    mouseout 经过其子元素会被调用 次数<span class="number">0</span> 

       <div class="subDiv">div中的子元素      </div>
    </div>    </td>
  </tr>
</table>

三,焦点

focus() 获取焦点

blur() 失去焦点

<script src="http://how2j.cn/study/jquery.min.js"></script>

<script>
$(function(){
 $("input").focus(function(){
    $(this).val("获取了焦点");
 });

  $("input").blur(function(){
    $(this).val("失去了焦点");
 });

});

</script>  

<style>

</style>

<input type="text" >

<input type="text" >
时间: 2024-07-31 14:26:46

【JS】键盘鼠标事件的相关文章

js的鼠标事件整理-------Day47

今天回来的有些晚了,实在是困的要命了,就不再做新的应用了,总结复习下之前的功能实现,却是感慨万千,今天6月24日,其实算是个比较有意义的一天,去年的今天开始,我迈入了软件这个行业,而如今,已经一年了,有收获也有不足,我想象不出明年今天我的样子,但我愿不停努力,加油. 前几日在交互上做了一些整理记录,大体总结起来主要的有两种:键盘和鼠标. 键盘虽然按键颇多,但整个的事件却只有两个:onkeydown和onkeyup,还有人说还存在onkeypress,这个我还没有用过,暂时先记下吧. 而鼠标事件则

Android查询:模拟键盘鼠标事件之adb shell 实现

1. 发送键盘事件: 命令格式1:adb shell input keyevent "value" 其中value以及对应的key code如下表所列: KeyEvent Value      KEYCODE     Comment 0       KEYCODE_UNKNOWN 1       KEYCODE_MENU     在SDK2.1的模拟器中命令失效,sendevent命令可行 2       KEYCODE_SOFT_RIGHT 3       KEYCODE_HOME

js中鼠标事件总结

js中鼠标事件主要有onclick,onmousedown,onmouseup,oncontextmenu,ondblclick,所有的这些事件都包含有一个事件对象event,当然在IE低版本下,event对象是挂在window底下的.这个我们另行讨论. 1.通过html添加事件 <input type="button" click="alert(1)"/> 2.通过DOM0级方式添加事件 <input type="button"

Android自动化测试初探(五): 再述模拟键盘鼠标事件(adb shell 实现) .

http://blog.csdn.net/roger_ge/article/details/5552740 转自csdn,实现模拟鼠标键盘系列 上一篇博文中讲述了通过Socket编程从外部向Emulator发送键盘鼠标模拟事件,貌似实现细节有点复杂.其实Android还有一种更简单的模拟键盘鼠标事件的方法,那就是通过使用adb shell 命令. 1.     发送键盘事件: 命令格式1:adb shell input keyevent "value" 其中value以及对应的key

vue.js 键盘enter事件的使用

在监听键盘事件时,我们经常需要检查常见的键值.Vue 允许为 v-on 在监听键盘事件时添加按键修饰符: <!-- 只有在 `keyCode` 是 13 时调用 `vm.submit()` --><input v-on:keyup.13="submit"> 记住所有的 keyCode 比较困难,所以 Vue 为最常用的按键提供了别名: <!-- 同上 --><input v-on:keyup.enter="submit"&g

linux 处理键盘 鼠标事件

Linux下鼠标和键盘的模拟控制,也就是为手势和语音控制鼠标和键盘部分服务的. 有关于本系统构建的文章结构都会由三个部分来组织,一是该功能模块的介绍和在Linux下简单应用程序的实现:二是将该功能模块整合到交互系统(先以TLD为地基)中去:三是分析目前存在的问题与未来的解决构思. 一.input子系统和模拟程序编写: Linux 输入子系统是 Linux内核用于管理各种输入设备(键盘,鼠标,遥控杆,书写板等等)的.输入子系统分为三块: input core, drivers和 event han

(转)C#模拟键盘鼠标事件

原文 1.模拟键盘事件System.Windows.Forms.SendKeys以下是   SendKeys   的一些特殊键代码表.     键   代码       BACKSPACE   {BACKSPACE}.{BS}   或   {BKSP}       BREAK   {BREAK}       CAPS   LOCK   {CAPSLOCK}       DEL   或   DELETE   {DELETE}   或   {DEL}       DOWN   ARROW(下箭头键)

js基础 -----鼠标事件

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ width: 100px; height: 100px; background-color: red; position: absolute; } </style> </he

C#模拟键盘鼠标事件 SendKeys 的特殊键代码表(转)

使用 SendKeys 将键击和组合键击发送到活动应用程序.此类无法实例化.若要发送一个键击给某个类并立即继续程序流,请使用 Send.若要等待键击启动的任何进程,请使用 SendWait. 每个键都由一个或多个字符表示.若要指定单个键盘字符,请使用该字符本身.例如,若要表示字母 A,请将字符串“A”传递给方法.若要表示多个字符,请将各个附加字符追加到它之前的字符的后面.若要表示字母 A.B 和 C,请将参数指定为“ABC”. 加号 (+).插入符号 (^).百分号 (%).波浪号 (~) 以及