javascript事件, 解决mousedown和click冲突事件, 鼠标事件, 键盘事件, 文本事件用法简介

事件分类

鼠标事件

  • click/ mousedown/ mousemove/ mouseup/ contextmenu/ mouseover/ mouseout/ mouseenter/ mouseleave
  • 用button来区别鼠标的按键
  • DOM3标准规定: click事件只能监听左键, 只能通过mousedown和mouseup来判断鼠标键
  • 鼠标左键button = 0, 右键button = 2, 滑轮 button = 1
    eg:
var div = document.getElementsByTagName('div')[0];
div.onmousedown = function (e) {
    var event = e || window.event;
    if(event.button == 2){
        console.log('right');
    }else if(event.button == 0){
        console.log('left');
    }
}
  • 如何解决mousedown和click的冲突
    应用时间差去区别, click的点击时间快
    eg:
var div = document.getElementsByTagName('div')[0];
var key = false;
var firstTime = 0;
var lastTime = 0;
div.onclick = function() {
    if(key){
        console.log('click');
        key = false;
    }
}
div.onmousedown = function() {
    firstTime = new Date().getTime();
    console.log('mouseDown');
}
div.onmouseup = function() {
    console.log('mouseUp');
    lastTime = new Date().getTime();
    if( (lastTime - firstTime) < 200){
        key = true;
    }
}

键盘事件

  • keydown keyup keypress
  • keydown > keypress > keyup
  • keydown和keypress的区别
    • keydown可以响应任意键盘按键, keypress只可以相应字符类键盘按键
    • keypress返回ascii码, 可以转换成相应字符串, charCode属性记录ascii, 并且keypress还可以记录大小写, 然而keydown不能, 但是keydown可以读到所有按键, 例如上下左右, keydown只有which

文本操作事件

  • input //当文本框输入值时触发事件
  • focus//聚焦
  • blur//失焦
  • change//判断一次聚焦失焦时文本内容是否发生变化, 变化时触发事件

窗口操作类

  • scroll//当滚动条滚动时触发
  • load//页面加载完毕之后执行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 总结: 鼠标事件 1.click与dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r阅读 1,640评论 2 10
  • (续jQuery基础(1)) 第5章 DOM节点的复制与替换 (1)DOM拷贝clone() 克隆节点是DOM的常...
    凛0_0阅读 1,369评论 0 8
  • 事件流 IE和Netscape开发团队提出了完全相反的两种事件流的概念,事件冒泡流和事件捕获流。 事件冒泡 事件由...
    exialym阅读 992评论 0 9
  • pragma mark 分类练习 pragma mark 概念 pragma mark 代码 Person.h /...
    liyuhong165阅读 135评论 0 0
  • 1、从来不去想:“如果当初" 2、适当的糊涂 3、平衡各种利益 4、适当的弯腰 5、拿捏好“度” 6、淡定,即便天...
    P尐c阅读 646评论 0 1