链接:MDN事件类型一览表
鼠标事件
click、mousedown、mousemove、mouseup、contextmenu、mouseover、mouseout、 mouseenter mouseleave
用button来区分鼠标的按键,0/1/2
DOM3标准规定:click事件只能监听左键,只能通过mousedown 和 mouseup来判断鼠标键
如何解决mousedown和click的冲突?
利用时间差,时间差小就是点击,长就是拖拽
var downTime = 0, upTime = 0;
var isClick = false;
document.onmousedown = function () {
downTime = new Date().getTime();
}
document.onmouseup = function () {
upTime = new Date().getTime();
if(upTime - downTime < 300){
isClick = true;
}
}
document.onclick = function(){
if(isClick) {
console.log('click');
isClick = false;
}
}
拖拽应用: JS拖拽
键盘事件
keydown keyup keypress
顺序:keydown > keypress > keyup
keydown和keypress的区别 keydown 可以响应任意键盘按键,keypress只可以相应字符类键盘按键
keypress返回ASCII码,可以转换成相应字符